以前に『PHPの配列マージ;「array_merge()」と「+演算子による結合」と』として書いた記事があるのだが、どうもわかりにくい、というか、覚えられないので、書き直すことにした。

比較については、上記記事より他の方が書かれた記事をご参照いただいたほうがわかりやすいかと(^o^;)


なるほど。自作関数で表すとわかりやすいかも。。
厳密に挙動を関数で定義するならばこうですね。



んで、この記事の存在意義としては…
使おうとするたび忘れてしまっていて調べ直し、ってことになっているので(私だけ…?)、その覚え方について考えてみる。

まずはまとめ。
2つの配列は、コレとする。

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

    
$b = array(
'b' => 'BLANK',
'e' => 'EMPTY',
'n' => 'NOTHING');



そして結果。
array_merge($a, $b)array_merge($b, $a)$a + $b$b + $a
array (
'a' => 'apple',
'b' => 'BLANK',
'c' => 'cherry',
'd' => 'durian',
'e' => 'EMPTY',
'f' => 'fig',
'g' => 'grape',
'n' => 'NOTHING',
)
array (
'b' => 'banana',
'e' => 'elderberry',
'n' => 'NOTHING',
'a' => 'apple',
'c' => 'cherry',
'd' => 'durian',
'f' => 'fig',
'g' => 'grape',
)
array (
'a' => 'apple',
'b' => 'banana',
'c' => 'cherry',
'd' => 'durian',
'e' => 'elderberry',
'f' => 'fig',
'g' => 'grape',
'n' => 'NOTHING',
)
array (
'b' => 'BLANK',
'e' => 'EMPTY',
'n' => 'NOTHING',
'a' => 'apple',
'c' => 'cherry',
'd' => 'durian',
'f' => 'fig',
'g' => 'grape',
)


そしていよいよ、覚え方を考える。

■array_merge()

array_merge()のほうは、後者が優先され、既存のものは上書きされる。
「merge」には「合併する」という意味もある。
という訳で、企業の合併をイメージして…合併した場合、各ポストには後から来たヒトが入り、古いヒトはお払い箱となる。っと覚えよう\(^o^)/
えっと、あくまでも覚え方なので、合併には様々で、すべてがこの通りではないと思いますよ。念のため(^o^;)

■「+」演算子($a + $b)

+演算子だと、前者が優先され、既存のものは上書きされない。
プラス、ということで、おまけを付ける、というイメージ。
元々ある場合はつける必要はなくて、ない場合だけつけてあげましょう、って感じ。

…さて、いかがでしょうか。
ワタクシメ的には、コレでなんとか覚えられそうな手応えを感じていますが。。
まぁ、しばらく経過して、いざ使おう、という場面になってみないと、覚えられたかどうかわかりませんね(-_-;)

今ふと思ったのだが…この覚え方自体を忘れてしまいそうな予感(;´Д`)

「その時」が訪れたら、結果をご報告するつもりです(`・ω・´)