在数组中查找相似条件的内容

3

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

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

在键入“jas”时,记录应包含Jason Ince的键和值以及其余的记录。


你可以通过循环数组并对每个键值对执行strpos比较吗? - jeschafe
4个回答

9
你的意思是这样的吗:
foreach($yourArr as $key => $value) {
    if (strpos($value, $yourString) !== false) {
       //results here
    }
}

该死的正则表达式..它们宠坏了我!我完全忘记了 strpos() - Adi

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);
    }
}

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接