我有一个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";
}
但结果是“没找到”.....我没看到什么?
答案 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";
}