我有此数组:array_search回报错键
$ar = [ 'key1'=>'John', 'key2'=>0, 'key3'=>'Mary' ];
,如果我写的:
$idx = array_search ('Mary',$ar);
echo $idx;
我得到:
key2
我已经搜索过网,这不是孤立的问题。看起来,如果关联数组包含0值,则如果未设置strict参数,则array_search会失败。
还有不止一个bug warnings,都被拒绝的动机:“array_search()默认情况下做了一个宽松的比较”。
好吧,我解决我的使用严格的参数有点问题......
但我的问题是:有一个体面的,正当的理由,为什么在松动比较'Mary'==0
或'two'==0
或者它只是另一个PHP疯狂?
我认为它停止搜索了第一个等于时。如果在'key2'('$ ar = ['key1'=>'John','key3'=>'Mary','key2'=> 0];'''''array_search''''''''' array_search''''''''''''''前面加上'key3' '。 – brevis
正如在[array_search()](http://php.net/manual/en/function.array-search.php)手册中所述...如果搜索需要严格,您需要设置第3个参数。 .. – Naruto
@Naruto是的,我写在我的问题。我的问题是关于'为什么?',而不是'如何'... – LVA