2014-10-20 125 views
1

我使用的關聯數組array_key_exists來檢測是否有鍵存在這樣的...array_key_exists包含字符串

if (array_key_exists('Packaged price (£3.00)', $item)) 
{ 
echo 'The Key Exists'; 
} 

這工作得很好,但我想,這樣它會檢查鍵是否有修改它包裝在名稱中。所以,而不是檢查只是'包裝的價格(£3.00)'它也可以用於以下...

Packaged cost (£3.00) 
Packaged price (£17.00) 
Packaged Item 

這可能嗎?

回答

0

簡單地通過所有的鑰匙環和檢查是否有任何鍵包含術語Packaged

foreach($items as $key=>$value) 
{ 
     if(stristr($key,'Packaged')!==FALSE) 
     echo "Matching key is: $key"; 
} 

Fiddle

1

array_key_exists不會在這種情況下工作,它會執行精確匹配,對以下可以使用您的要求:

foreach($array as $key=>$val){ 
    $keyArray = explode(' ',$key); 
    if(in_array('Packaged',$keyArray)) 
     echo "Key exists" ; 
} 
+0

'for($ array as ...'...? – Max 2014-10-20 17:54:12

+1

不需要爆炸並創建另一個數組。只需使用該鍵上的任何字符串函數來查明該鍵是否包含術語「Packaged」 – 2014-10-20 17:55:56

0
$test = "Package sdsd"; 

echo preg_match("/(Package)+/",$test); 

你可以使用簡單的正則表達式,作爲上面的例子,如果包字出現字符串結果將是真的