array_merge是很經常使用的數組合並函數,可是兩個數組直接相加對開發也是頗有幫助的,二者之間有什麼差異,這裏記錄一下:php
首先是以數字爲索引數組
array_merge會將兩個數組按照前後順序組成一個新的數組app
$array1 = ["a", "b", "c"]; $array2 = ["d", "e", "f"]; print_r(array_merge($array1, $array2)); print_r(array_merge($array2, $array1));
輸出結果以下:函數
而兩個數組直接相加,則不會徹底保留,而是隻保留前者的。同時若是兩個數組的大小不一致的話,結果的長度會是兩個數組長度的最大值,當第一個數組的大小不夠時會從後面的數組對應的位置取值補充學習
$array1 = ["a", "b", "c"]; $array2 = ["d", "e", "f"]; $array3 = ["g"]; print_r($array1+$array2); print_r($array2+$array1); print_r($array1+$array3); print_r($array3+$array1);
輸出結果以下:spa
再來看看當數組以字符串爲索引時blog
array_merge對於相同的key會進行替換,後者取代前者,對於沒有重複的key會按順序進行拼接索引
$array1 = ['a' => 'aa', 'b' => 'bb', 'c' => 'cc']; $array2 = ['a' => 'dd', 'b' => 'ee', 'c' => 'ff', 'g' => 'gg']; print_r(array_merge($array1, $array2)); print_r(array_merge($array2, $array1));
輸出結果以下:element
而兩個數組直接相加,對於相同的key會保留前者,對於沒有重複的key會按順序進行拼接開發
$array1 = ['a' => 'aa', 'b' => 'bb', 'c' => 'cc']; $array2 = ['a' => 'dd', 'b' => 'ee', 'c' => 'ff', 'g' => 'gg']; print_r($array1 + $array2); print_r($array2 + $array1);
輸出結果以下:
我的學習記錄,僅供參考~