3

我有以下数组,我想使用搜索和排序。搜索和排序就像我们使用 MySQL“LIKE”条件进行的排序,但在数组中而不是在数据库中。

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

就像用 Jason Ince 输入“jas”记录一样,必须分别用键和值以及记录的其余部分从中出来。

4

4 回答 4

9

你的意思是这样的:

foreach($yourArr as $key => $value) {
    if (strpos($value, $yourString) !== false) {
       //results here
    }
}
于 2012-07-16T05:43:05.350 回答
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 });
于 2012-07-16T05:43:38.843 回答
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
于 2012-07-16T05:45:57.843 回答
1

你也可以这样使用:

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

这样您就可以检查条件是否为假。

于 2012-07-16T05:46:29.313 回答