2012-07-08 89 views
1

我寫了下面的函數來按鍵搜索多維數組,但是如果我用鍵uri調用該函數,它會將具有鍵0的數組附加到找到的數組。怎麼了?這個數組搜索功能有什麼問題?

function search_arr($array, $key, &$found) { 
    foreach ($array as $k => $each) { 
     if ($k == $key) { 
      // output of "print $k = $key" is "0 = uri" 
      $found[] = $each; 
     } 
     if (is_array($each)) { 
      search_arr($each, $key, $found); 
     } 
    } 
} 

回答

1

使用===強制值類型匹配。你會得到零,因爲比較0和「uri」是true-認爲它們都評估爲0.有關PHP如何處理這些「鬆散」比較的完整細節,請參見section of the manual

+0

爲什麼uri等於零?我認爲0等於空字符串 – user16948 2012-07-08 20:11:05

+0

@Nima零等於'false'。 'null'等於'null'或空字符串。 – 2012-07-08 20:12:59

+0

好吧,但是爲什麼'uri'等於false? – user16948 2012-07-08 20:15:04