公開日

[php] array_merge VS array +(plus)

PHPのarray_merge関数による配列の足し合わせとプラス(+)による足し合わせってどう違うの?ってことで実際に試してみた。

<?php
$ary1 = array(
'matsu' => 'ary1 matsu',
'take' => 'ary1 take',
'ume' => 'ary1 ume',
'ary1' => 'ary1 value',
);
$ary2 = array(
'matsu' => 'ary2 matsu',
'take' => 'ary2 take',
'ume' => 'ary2 ume',
'ary2' => 'ary2 value',
);
print_r (array_merge($ary1, $ary2));
print_r ($ary1 + $ary2);
/*
output:
Array
(
[matsu] => ary2 matsu
[take] => ary2 take
[ume] => ary2 ume
[ary1] => ary1 value
[ary2] => ary2 value
)
Array
(
[matsu] => ary1 matsu
[take] => ary1 take
[ume] => ary1 ume
[ary1] => ary1 value
[ary2] => ary2 value
)
*/
view raw gistfile1.php hosted with ❤ by GitHub

上記から、同じキーで足し合わせたとき、array_mergeでは後からきたarray(第二引数)で先のarray(第一引数)を上書きして、プラスの加算のほうではすでに最初のキーで定義してある値はプラスによる加算によってその値は変化しないことがわかります。

まとめ

  • array_merge() は後勝ち
  • + (プラス)は先勝ち