array_search返回0时,任何成员为null



我有一个数组,不是所有键都有一个值(在这种情况下,仅是第一个成员(:

$a = array("a", "b" => 4, "c" => 193);
$idx = array_search("c", array_keys($a)) ;
var_dump($idx);

这返回0;

如果我设置"a" => 123,则获得正确的返回值(2(。

为什么array_search不能返回正确的键索引,即使并非所有键都有值?

这是因为"c" == 0true,您的第一个密钥是0

true作为第三个参数传递给array_search

混合Array_search(混合$针,阵列$ haystack [,bool $ strict = false](