繁体   English   中英

php array_search 0 索引

[英]php array_search 0 index

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

例如,考虑以下代码:

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

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

     echo $key;

}

else{

     echo "Not found";

} 

在 haystack 中找到了针 '100' 并且键返回为 0。到目前为止一切都很好,但是当我评估搜索是否成功时它失败了,因为返回值是 0,等于 false!

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

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

}

那么如何成功搜索数组,在 0 索引中找到匹配项并将其评估为真?

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

$key = array_search(...);

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

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

第二个示例块中的条件为!==运算符提供了执行顺序优先级,但您想要做相反的事情。

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

!==的优先级高于==这使得括号必要的。

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

它更安全

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM