合併具有相同鍵的陣列:克服array_merge 的限制
在軟體開發中,合併具有相同鍵的陣列可能是一項常見任務。然而,array_merge 函數經常無法合併具有相同鍵的所有元素,從而導致資料遺失。
考慮以下範例:
<code class="php">$A = array('a' => 1, 'b' => 2, 'c' => 3); $B = array('c' => 4, 'd' => 5); array_merge($A, $B); // Result [a] => 1 [b] => 2 [c] => 4 [d] => 5</code>
如圖所示,'c 的原始值'=>合併後3遺失。為了解決這個問題,需要另一種方法。
解決方案:array_merge_recursive
解決方案在於使用 array_merge_recursive 函數。與 array_merge 不同,array_merge_recursive 遞歸地合併輸入陣列的鍵和值,保留所有資料。
以下程式碼示範了這種方法:
<code class="php">$A = array('a' => 1, 'b' => 2, 'c' => 3); $B = array('c' => 4, 'd' => 5); array_merge_recursive($A, $B); // Result [a] => 1 [b] => 2 [c] => [0 => 3, 1 => 4] [d] => 5</code>
如您所見,與'c' 被保留。然而,由於合併後的數組中只能有一個“c”鍵,因此結果成為數組中的數組。
以上是如何合併具有相同鍵的數組並保留所有資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!