【追記】この記事に関連する新しい記事を投稿しました。
[php] 配列と配列を結合する時 [array]

$arr1 = array_merge($arr1, $arr2);
とか
$arr1 += $arr2;
とかした時に、同一キーが存在した場合はどちらが生き残るのか…いつも忘れるので、φ(..)メモメモ

ソース

$a = array(
  'a' => 'apple',
  'b' => 'banana',
  'c' => 'cherry',
  'd' => 'durian',
  'e' => 'elderberry',
  'f' => 'fig',
  'g' => 'grape');
$b = array(
  'b' => 'BLANK',
  'e' => 'EMPTY',
  'n' => 'NOTHING');
echo '$a = ' . var_export($a, true) . ";\n";
echo '$b = ' . var_export($b, true) . ";\n\n";

$c = array_merge($a, $b);
$d = array_merge($b, $a);
echo '$c = ' . var_export($c, true) . ";\n";
echo '$d = ' . var_export($d, true) . ";\n\n";

$e = $a + $b;
$f = $b + $a;
echo '$e = ' . var_export($e, true) . ";\n";
echo '$f = ' . var_export($f, true) . ";\n\n";

実行結果

$a = array (
  'a' => 'apple',
  'b' => 'banana',
  'c' => 'cherry',
  'd' => 'durian',
  'e' => 'elderberry',
  'f' => 'fig',
  'g' => 'grape',
);
$b = array (
  'b' => 'BLANK',
  'e' => 'EMPTY',
  'n' => 'NOTHING',
);

// $c = array_merge($a, $b);
$c = array (
  'a' => 'apple',
  'b' => 'BLANK',
  'c' => 'cherry',
  'd' => 'durian',
  'e' => 'EMPTY',
  'f' => 'fig',
  'g' => 'grape',
  'n' => 'NOTHING',
);

// $d = array_merge($b, $a);
$d = array (
  'b' => 'banana',
  'e' => 'elderberry',
  'n' => 'NOTHING',
  'a' => 'apple',
  'c' => 'cherry',
  'd' => 'durian',
  'f' => 'fig',
  'g' => 'grape',
);

// $e = $a + $b;
$e = array (
  'a' => 'apple',
  'b' => 'banana',
  'c' => 'cherry',
  'd' => 'durian',
  'e' => 'elderberry',
  'f' => 'fig',
  'g' => 'grape',
  'n' => 'NOTHING',
);

// $f = $b + $a;
$f = array (
  'b' => 'BLANK',
  'e' => 'EMPTY',
  'n' => 'NOTHING',
  'a' => 'apple',
  'c' => 'cherry',
  'd' => 'durian',
  'f' => 'fig',
  'g' => 'grape',
);

考察

$arr1に$arr2をマージするとき、$arr1の値を保存したい場合は「+演算子」を、$arr2の値で上書きしたい場合は「array_merge()」を使用すると良いでしょう。
前者の場合で、array_merge($arr2,$arr1);とすれば望みは叶うものの、配列の順序がわちゃわちゃになってよろしくないでしょう(上記結果の"$d"のパターンですな)。
後者の場合でも同様("$f"のパターン)。

蛇足

$arr1 += $arr2;
っとか、配列を足し算しちゃうなんてところが「いかにもPHP」って感じで個人的に好きかも(*´ω`*)
でも、そういえば、この書き方って、$arr2の値で上書きしたい場合には使えないってことか…。