php array_search 0索引

时间:2013-04-10 19:11:35

标签: php arrays search zero

似乎你不能在PHP中使用search_array函数来搜索0索引并将其评估为真。

请考虑以下代码:

$test=array(100, 101, 102, 103);

if($key=array_search(100,$test)){

     echo $key;

}

else{

     echo "Not found";

} 

在大海捞针中找到针'100'并且密钥返回为0.到目前为止一直很好,但是当我评估搜索是否成功时它会失败,因为返回值为0,等于false !

php手册建议使用'!==',但这样做不会返回键(数组索引),而是返回1或0:

if($key=(array_search(103,$test)!== false)){

}

那么我怎样才能成功搜索数组,在0索引中找到匹配并将其评估为true?

5 个答案:

答案 0 :(得分:31)

这在文档中明确提到。您需要使用===!==

$key = array_search(...);

if ($key !== false) ...

否则,当$key0时,evaluates to false作为布尔值进行测试时。

答案 1 :(得分:4)

第二个示例块中的条件赋予!==运算符执行顺序优先级,但是您希望执行相反的操作。

if (($key = array_search(100,$test)) !== false) {

!== 更高优先级高于==,这使得必须使用括号。

答案 2 :(得分:1)

$key = array_search($what, $array);
if($key !== false and $array[$key] == $what) {
 return true;
}

它更安全

答案 3 :(得分:0)

if(($key = array_search(103,$test)) !== false){

}

答案 4 :(得分:0)

$test=array(100, 101, 102, 103);

if (($key = array_search(100,$test)) === false) {
    echo "Not found";
} else{
    echo $key;
}