array_merge是很常用的數組合併函數,但是兩個數組直接相加對開發也是很有幫助的,兩者之間有什麼差別,這裡記錄一下~ ...
array_merge是很常用的數組合併函數,但是兩個數組直接相加對開發也是很有幫助的,兩者之間有什麼差別,這裡記錄一下:
首先是以數字為索引
array_merge會將兩個數組按照先後順序組成一個新的數組
$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);
輸出結果如下:
再來看看當數組以字元串為索引時
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));
輸出結果如下:
而兩個數組直接相加,對於相同的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);
輸出結果如下:
個人學習記錄,僅供參考~