php array_search 0索引

6 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";

} 
Run Code Online (Sandbox Code Playgroud)

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

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

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

}
Run Code Online (Sandbox Code Playgroud)

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

mea*_*gar 31

这在文档中明确提到.你需要使用===!==:

$key = array_search(...);

if ($key !== false) ...
Run Code Online (Sandbox Code Playgroud)

否则,何时$key0,当测试为布尔值时评估为false.

  • 你当然可以使用`if(($ key = array_search(...))!== false)` (2认同)

Exp*_*lls 5

第二个示例块中的条件将执行顺序优先级赋予!==运算符,但是您想做相反的事情。

if (($key = array_search(100,$test)) !== false) {
Run Code Online (Sandbox Code Playgroud)

!==具有更高的优先级比==这使得括号必要的。