2012-07-16 18 views
3

我有以下數組,我想使用搜索和排序。搜索和排序就像我們用MySQL「LIKE」條件進行排序,但在數組中不是在數據庫中。在數組中查找類似的條件

Array 
(
    [4] => Varun Kumar 
    [14] => Jason Ince 
) 

與Jason Ince打字'jas'記錄一樣,必須分別用鍵和值以及記錄的其餘部分將其輸出。

+0

你可以循環訪問數組,並對每個鍵進行strpos比較:值對嗎? – jeschafe 2012-07-16 05:40:56

回答

8

你的意思是這樣的:

foreach($yourArr as $key => $value) { 
    if (strpos($value, $yourString) !== false) { 
     //results here 
    } 
} 
+0

該死的RegEx ..他們寵壞了我!我完全忘了'strpos()' – Adi 2012-07-16 05:43:51

3

您可以使用array_filter

$filtered_array = array_filter($original_array, create_function($a, 'return stristr($a,"jas")!==false')); 

,或者,如果你使用PHP 5.3+,語法是:

$filtered_array = array_filter($original_array, function($a){ return stristr($a,"jas")!==false }); 
2
function arraySearch($array, $search) { 
    foreach ($array as $a) { 
     if(strstr($a, $search)){ 
      echo $a; 
     } 
    } 
return false; 
} 
arraySearch(array("php","mysql","search"),"my"); // will return mysql 
1

你也可以用這種方式:

function check($yourString) 
{ 
    foreach($yourArr as $key => $value) { 
     if (strpos($value, $yourString) !== false) 
      return strpos($value, $yourString); 
    } 
} 

這樣你就可以檢查條件是否爲假。