php in_array没有给出预期的结果

时间:2016-01-15 19:25:36

标签: php

我有一个stoopid noob问题,但我似乎无法找到答案。

我有以下数据:

一个数组($ haystack):

 Array ( [0] => Field number 1__text__Fieldnumber1 [1] => Field number 2__text__Fieldnumber2 )
  • 要在数组中搜索的字符串($needle):Fieldnumber1

我正在使用上面的

进行简单的in_array搜索
if (in_array($needle, $haystack) == true)
{
    echo "found";
}
else 
{
    echo "not found";
}

但结果是“没找到”.....我没看到什么?

1 个答案:

答案 0 :(得分:1)

问题是,in_array()会尝试将$needle与整个字符串匹配,而不是字符串的一部分。因此,首先使用explode()函数拆分数组元素,然后使用in_array()函数,如下所示:

$haystack = array ( 0 => "Field number 1__text__Fieldnumber1", 1 => "Field number 2__text__Fieldnumber2" );
$needle = "Fieldnumber1";

$flag = false;
foreach($haystack as $str){
    $array = explode("__", $str);
    if(in_array($needle, $array)){
        $flag = true;
        break;
    }
}

if($flag){
    echo "found";
}else{
    echo "not found";
}