站內搜尋

Tuesday, May 17, 2016

[PHP] 淺談 陣列合併 array_merge 與 $array_1 + $array_2 的差別

想要將兩個以上的陣列合併,有兩個方式

方法1.
$arr = array_merge($array_1, $array_2);

方法2.
$arr = $array_1 + $array_2;

差異在於
方法1 當 array 的 key 是 string 時,後面的陣列會蓋掉前面的陣列
方法2 當 array 的 key 是 string 時,前面的陣列會蓋掉後面的陣列
方法1 當 array 的 key 是 number 時,陣列的 key 會先被移除,然後合併。
方法2 當 array 的 key 是 number 時,與 string key 結果一樣。


另外,如果當 $array_1 與 $array_2 都是 string key ,而我們又不希望發生因 key 重複而覆蓋的情形時,可以使用 array_values ,先移除 string key 再用 array_merge() 合併。ex.
$arr = array_merge(array_values($array_1), array_values($array_2));

而 $array_1 + $array_2 在使用 array_values() 會發生大量覆蓋。

No comments:

Post a Comment