PHP array_search:如何区分key == 0和false?

时间:2014-10-17 21:59:11

标签: php

我注意到有关PHP array_search函数的一些有趣内容,并且想知道是否有人可以告诉我如何解决这个问题:

它在docs中说该函数在数组中找到值时返回键,否则返回false。

问题是,如果你有一个数组,如:

$arr = array(0 => "red", 1 => "blue", ...);

并使用array_search查找值red,然后返回键0。

然而问题是如果你使用函数的结果来查找是否在数组中找到了某个元素,那么如果该值返回0(键0是因为实际找到了一个具有键0的元素),它在PHP中的处理方式与函数返回false时相同。换句话说:

if (array_search("red", $arr) == false)

如果相同:

if (array_search("red", $arr) == 0)

除了在一种情况下,找不到元素,在第二种情况下,可能找到一个元素,哪个键是0。

所以我的问题是,这个问题的解决方案是什么?

1 个答案:

答案 0 :(得分:2)

PHP manual

  

此函数可能返回布尔值FALSE,但也可能返回a   非布尔值,其值为FALSE。请阅读有关的部分   布尔值获取更多信息。 使用===运算符进行测试   该函数的返回值。