PHP array_search无法搜索字符串零

时间:2017-01-17 21:34:08

标签: php arrays search

查找' 1'和' 2' - 但不是零' 0'

$My_Array = array('0', '1', '2');

        if(array_search('0', $My_Array)){
            echo "FOUND";
        }else{
            echo "NOT FOUND";
        }

在这种情况下 - 0是一个字符串 - 为什么它找不到零?

2 个答案:

答案 0 :(得分:2)

  

array_search - 在数组中搜索给定值并返回   如果成功,首先对应的密钥

此处的键为0.如果(0)结果为false,则显示未找到。 PHP正在做它声称做的事情

答案 1 :(得分:2)

来自php.net array_search()函数的文档,

  

如果在数组中找到,则返回针的键,否则返回FALSE。

现在提出你的问题:

  

为什么找不到零?

是的,确实找到了。请看以下行,

if(array_search('0', $My_Array)){ ...

在这种情况下,array_search()函数将返回0,它是数组中元素'0'的索引。因此,if块将按此执行:

if(0){ ... 

基本上评估为false,这意味着即使在数组中找到元素else,控件也会转到'0'块。

解决方案是,通过以下方式更改if块:

if(array_search('0', $My_Array) !== false){