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...