Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php数组搜索0索引_Php_Arrays_Search_Zero - Fatal编程技术网

php数组搜索0索引

php数组搜索0索引,php,arrays,search,zero,Php,Arrays,Search,Zero,似乎无法在PHP中使用search_数组函数来搜索0索引并将其求值为true 以这段代码为例: $test=array(100, 101, 102, 103); if($key=array_search(100,$test)){ echo $key; } else{ echo "Not found"; } 在干草堆中发现了指针“100”,钥匙返回为0。到目前为止还不错,但当我评估搜索是否成功时,它失败了,因为返回值为0,等于false php手册建议使用“!=

似乎无法在PHP中使用search_数组函数来搜索0索引并将其求值为true

以这段代码为例:

$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呢?

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

$key = array_search(...);

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

否则,当
$key
0
时,当将其作为布尔值进行测试时。

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

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

}
if (($key = array_search(100,$test)) !== false) {
==的优先级高于
=
,因此必须使用括号

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

它更安全

如果($key=array\u search(…)!==false),你当然可以使用
如果($key=array\u search(…)!==false)
我读了好几篇文章,一遍又一遍地阅读手册,但找不到答案。我想我有个“!=”在我代码的错误部分。现在工作-谢谢!你没看到那张照片吗?在提出此类问题之前,请阅读文档并理解语言。注意:这是这里最正确的。如果我能从我糟糕的、陈旧的、天真的、现在被删除的答案中转移选票,我会的。
$test=array(100, 101, 102, 103);

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