array_merge と +演算子の挙動
array_mergeと+演算子の挙動を理解していなかったのでメモ。
array_mergeの特徴
- キーが数値の場合、0からに振りなおすため、同じキーでも追加する
- キーが文字列の場合、キーを保持するが同じキーは上書く
+演算子の特徴
- キーが数値でも文字列でもキーを保持するが、同じキーは上書く
以下、サンプル
#1
$a = array(10=>'a', 11=>'b');
$b = array(11=>'c', 13=>'d');
print_r(array_merge($a,$b));
#2
$a = array('z'=>'a', 'y'=>'b');
$b = array('y'=>'c', 'x'=>'d');
print_r(array_merge($a,$b));
#3
$a = array(10=>'a', 11=>'b');
$b = array(11=>'c', 13=>'d');
print_r($a+$b);
#4
$a = array('z'=>'a', 'y'=>'b');
$b = array('y'=>'c', 'x'=>'d');
print_r($a+$b);
#1の結果
Array
(
[0] => a
[1] => b
[2] => c
[3] => d
)
#2の結果
Array
(
[z] => a
[y] => c
[x] => d
)
#3の結果
Array
(
[10] => a
[11] => b
[13] => d
)
#4の結果
Array
(
[z] => a
[y] => b
[x] => d
)