PHP陣列直接相加和array merge的區別

2022-05-06 16:36:13 字數 1285 閱讀 9945

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);

輸出結果如下:

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

了解PHP中的Array陣列和foreach

1.了解陣列 php 中的陣列實際上是乙個有序對映。對映是一種把 values 關聯到 keys 的型別。詳細的解釋可參見 php.net中的array陣列 2.例子 一般的陣列 這裡,我通過乙個簡單的例子,並使用圖形方式來了解陣列。注 使用箭頭描述陣列 a各個單元對應某一記憶體位址的資料值 實際上...

array merge和陣列直接相加的區別

今天發現php的陣列居然可以直接相加,之前都是用array merge進行陣列的連線操作。但是試驗了一番發現差別還是很大的。首先是以數字為索引的陣列,array merge會將兩個陣列按照先後順序組成乙個新的陣列 array1 array a b c array2 array d e f 輸出arr...

深入了解PHP中的Array陣列和foreach

1.了解陣列 php 中的陣列實際上是乙個有序對映。對映是一種把 values 關聯到 k程式設計客棧eys 的型別。詳細的解釋可參見 php.net中的array陣列 2.例子 一般的陣列 這裡,我通過乙個簡單的例子,並使用圖形方式來了解陣列。a array 3 a 1 b 2 c echo va...