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