配列の結合 [PHP]
主に array_merge() と +演算子の違いについて。
ぐぐればいっぱい出てくるんだけどよく忘れるので備忘録。
<?php // PHP 5.4.17 $array1 = array( 'hoge' => 'udon', 0, 1, ); $array2 = array( 1 => 'a', 'b', 'hoge' => 'soba', 'fuga' => 'ra-men', ); var_export(array_merge($array1, $array2)); var_export($array1 + $array2);
■array_merge()の場合
array ( 'hoge' => 'soba', 0 => 0, 1 => 1, 2 => 'a', 3 => 'b', 'fuga' => 'ra-men', )
- インデックスが重複した場合は後勝ち
- 但し、インデックスが数値の場合は振り直しを行い追加する
■+演算子の場合
array ( 'hoge' => 'udon', 0 => 0, 1 => 1, 2 => 'b', 'fuga' => 'ra-men', )
- インデックスが重複した場合は先勝ち
- 前の配列に重複インデックスがない場合のみ、後の配列の要素を追加する
どうも分かりづらいなぁと思うのは僕だけかな?