查找' 1'和' 2' - 但不是零' 0'
$My_Array = array('0', '1', '2');
if(array_search('0', $My_Array)){
echo "FOUND";
}else{
echo "NOT FOUND";
}
在这种情况下 - 0是一个字符串 - 为什么它找不到零?
答案 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){