我有此數組: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