如果0
可能是从array_search()
返回的可能键,那么使用此函数(或任何php函数;如果有更好的函数)测试数组中是否存在元素的最佳方法是什么?一,请分享)?
我试图这样做:
if(array_search($needle, $haystack)) //...
但如果false
是数组中的第一个元素,那当然会返回$needle
。我想我要问的是,在if
语句中我能做些什么来让它表现得像我想要的那样?我尝试过这些,但没有一个有效:
$arr = array(3,4,5,6,7);
if(array_search(3, $arr) != false) //...
if(array_search(3, $arr) >= 0) //...
感谢帮助。
答案 0 :(得分:12)
这是方式:
if(array_search(3, $arr) !== false)
请注意使用===
PHP运算符,称为相同(在本例中不相同)。您可以在official doc中阅读更多信息。你需要使用它,因为使用等于运算符你不能区分0和假(或者也可以是null或'')。
如果找到匹配项并希望使用整数值,则更好的解决方案是:
if (($pos = array_search(3, $arr)) !== false)
{
// do stuff using $pos
}
答案 1 :(得分:7)
作为===
和!==
的替代方案,您还可以使用in_array
:
if (in_array($needle, $haystack))