php array_search 0 索引
Posted
技术标签:
【中文标题】php array_search 0 索引【英文标题】:php array_search 0 index 【发布时间】:2013-04-02 19:10:07 【问题描述】:似乎您不能使用 php 中的 search_array 函数来搜索 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?
【问题讨论】:
你没看到BIG RED BOX吗?在提出此类问题之前,请尝试阅读文档并理解语言。 【参考方案1】:这在文档中明确提到。您需要使用===
或!==
:
$key = array_search(...);
if ($key !== false) ...
否则,当$key
为0
时,evaluates to false
在测试为布尔值时。
【讨论】:
你当然可以使用if( ($key = array_search(...)) !== false)
我阅读了几个主题,一遍又一遍地阅读手册,但找不到答案。我想我在代码的错误部分有'!=='。现在工作 - 谢谢!【参考方案2】:
第二个示例块中的条件将执行顺序优先级赋予 !==
运算符,但您希望做相反的事情。
if (($key = array_search(100,$test)) !== false)
!==
比==
具有更高优先级,这使得括号是必需的。
【讨论】:
注意:这里是最正确的。如果我能从我糟糕的、陈旧的、幼稚的、现已删除的答案中转移赞成票,我会的。【参考方案3】:$test=array(100, 101, 102, 103);
if (($key = array_search(100,$test)) === false)
echo "Not found";
else
echo $key;
【讨论】:
【参考方案4】:$key = array_search($what, $array);
if($key !== false and $array[$key] == $what)
return true;
更安全
【讨论】:
【参考方案5】:if(($key = array_search(103,$test)) !== false)
【讨论】:
以上是关于php array_search 0 索引的主要内容,如果未能解决你的问题,请参考以下文章
php利用array_search与array_column实现二维数组查找
[PHP]:如果没有找到,array_search() 会返回啥?
php [php:array_search + array_column]来自db的saerch数组返回array_search + array_column。 #PHP