忘れやすいのでメモ。
数値添え字でない場合、array_mergeは重複キーを上書きする。+演算子は重複キーを上書きしない。
数値添え字の場合、array_mergeは後の配列が追記されるように添え字が振られる。+演算子は重複キーを上書きしない。
要するに、+演算子は元の配列を変更することはない。array_mergeは上書きされる可能性がある。
1, 'bbb' => 2, 'ccc' => 3);
$y = array('ccc' => 5, 'ddd' => 6);
print_r(array_merge($x, $y));
print_r($x + $y);
$x = array('a', 'b', 'c', 'd');
$y = array('b', 'c');
print_r(array_merge($x, $y));
print_r($x + $y);
Array
(
[aaa] => 1
[bbb] => 2
[ccc] => 5
[ddd] => 6
)
Array
(
[aaa] => 1
[bbb] => 2
[ccc] => 3
[ddd] => 6
)
Array
(
[0] => a
[1] => b
[2] => c
[3] => d
[4] => b
[5] => c
)
Array
(
[0] => a
[1] => b
[2] => c
[3] => d
)
Array
(
[0] => hoge
[1] => moge
)
Array
(
[0] => hoge
)