使用
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
)