Php 使用数组_search()检查数组中是否存在值

Php 使用数组_search()检查数组中是否存在值,php,Php,如果0可能是从array\u search()返回的键,那么使用此函数(或任何php函数;如果有更好的函数,请共享)测试数组中是否存在元素的最佳方法是什么 我试着这么做: if(array_search($needle, $haystack)) //... 但是,如果$needle是数组中的第一个元素,那么当然会返回false。我想我要问的是,在这个if语句中,我能做些什么,让它表现得像我想要的那样?我试过做这些,但没有一个奏效: $arr = array(3,4,5,6,7); if(ar

如果
0
可能是从
array\u search()
返回的键,那么使用此函数(或任何php函数;如果有更好的函数,请共享)测试数组中是否存在元素的最佳方法是什么

我试着这么做:

if(array_search($needle, $haystack)) //...
但是,如果
$needle
是数组中的第一个元素,那么当然会返回
false
。我想我要问的是,在这个
if
语句中,我能做些什么,让它表现得像我想要的那样?我试过做这些,但没有一个奏效:

$arr = array(3,4,5,6,7);

if(array_search(3, $arr) != false)  //...

if(array_search(3, $arr) >= 0)  //...
感谢您的帮助。

以下是方法:

if(array_search(3, $arr) !== false)
注意
=
PHP操作符的使用,称为idential(在本例中不相同)。您可以在中阅读更多信息。您需要使用它,因为使用equal运算符时,您无法区分0和false(或null或“”

如果找到匹配项并希望使用整数值,则更好的解决方案是:

if (($pos = array_search(3, $arr)) !== false)
{
   // do stuff using $pos
}

作为
==
的替代方案==,也可以在数组中使用

if (in_array($needle, $haystack))

天哪。这是最快的答案time@Shredder很高兴你喜欢:第一次我不得不使用这个接线员。yayThis是更好的解决方案,因为它允许在检查之后也使用密钥。不知道为什么这不是一个好的选择。唯一的缺点是,要得到这个位置,你必须调用另一个函数。啊!这就是我要找的:)谢谢@奥雷里奥·德洛萨不需要钥匙:)没问题:)不过你还是应该看看@Aurelio的答案。有许多地方需要使用
==
==运算符。理解它们是任何PHP开发人员的一项要求。我确实做到了,并为他的回答感到高兴!就在这种情况下,你的回答就足够了。