array_merge
関数の代わりにこの方法で複数の配列をマージすることは可能ですか?
$defaults = array('a'=>'b');
$defaults .= array('c'=>'d');
print_r($defaults);?>
いいえ、.
and.=
演算子は文字列のみを操作するためです。
演算子+
は配列に対して機能し、 とはセマンティクスがわずかに異なりarray_merge
ます。
配列の追加は次のように機能します。
+ 演算子は、左側の配列に追加された右側の配列を返します。両方の配列に存在するキーの場合、左側の配列の要素が使用され、右側の配列の一致する要素は無視されます。
array_merge
次のように動作します:
入力配列に同じ文字列キーがある場合、そのキーの後の値が前の値を上書きします。ただし、配列に数値キーが含まれている場合、後の値は元の値を上書きせずに追加されます。
ほとんどの場合、+
代わりに演算子が必要です。
$defaults = array('a'=>'b');
$defaults += array('c'=>'d');
print_r($defaults);
ただし、 とはモードが少し異なることに注意してくださいarray_merge
。つまり、すでに定義されているキー/インデックスをオーバーライドしません。
これを試して:
$defaults = array('a'=>'b');
$defaults += array('c'=>'d');
print_r($defaults);