使用
array_merge
與array+array
兩個執行結果不同, 如果依照效能的話, 後者的陣列相加會比前者更好這兩種方式都是用key與值去做比較, PHP陣列當中, 可以選擇指定key和值, 當然也可以不指定key只有值, 此時預設的key就是0,1,2,3,4....
array_merge($a, $b)
的行為是, 當$a與$b有相同的key時, 值會後蓋前, 就是說$b的值會覆蓋$a的值, 如果沒有key的值, 則會附加在陣列尾端, 且index會重新排序function myTest() { $a = [ 'amy' => 'A001', 'nini' => 'A002', 1 => 'A003' ]; $b = [ 'nini' => 'A004', 'A005', 'A006', 'A007' ]; print_r(array_merge($a,b)); }執行結果
array( [amy] => A001 [nini] => A004 [0] => A003 [1] => A005 [2] => A006 [3] => A007 )如果是
array+array
的情況, 行為則是相反, 會前蓋後, 沒有key的值也會前蓋後, 且index不會重新排序依照剛剛的例子:
function myTest_01() { $a = [ 'amy' => 'A001', 'nini' => 'A002', 1 => 'A003' ]; $b = [ 'nini' => 'A004', 'A005', 'A006', 'A007' ]; print_r(array_merge($a,b)); }執行結果
array( [amy] => A001 [nini] => A002 [1] => A003 [0] => A005 [2] => A007 )