- 公開日
[php] array_merge VS array +(plus)
PHPのarray_merge関数による配列の足し合わせとプラス(+)による足し合わせってどう違うの?ってことで実際に試してみた。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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 | |
) | |
*/ |
上記から、同じキーで足し合わせたとき、array_mergeでは後からきたarray(第二引数)で先のarray(第一引数)を上書きして、プラスの加算のほうではすでに最初のキーで定義してある値はプラスによる加算によってその値は変化しないことがわかります。
まとめ
- array_merge() は後勝ち
- + (プラス)は先勝ち