PHP數組直接相加和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);

輸出結果如下:

個人學習記錄,僅供參考~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM