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

时间:2011-11-30 22:06:40

标签: php

如果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)  //...

感谢帮助。

2 个答案:

答案 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))