連想配列を+=で連結
下記のような結果を期待しつつ、連想配列を+=で連結すると、
<?php //array('hoge' => 'HOGE', 'piyo' => 'PIYO', 'fuge' => 'FUGE')って結果を期待。 $a1 = array('hoge' => 'HOGE', 'piyo' => ''); $a2 = array('piyo' => 'PIYO', 'fuge' => 'FUGE'); $a1 += $a2; ?>
"+="は$a1にないキーのデータのみを追加するって動きをするので
結果はarray('hoge' => 'HOGE', 'piyo' => '', 'fuge' => 'FUGE')
となってしまう。
$a2を$a1にかぶせるようなイメージで連結したい場合はarray_merge()をつかって
<?php $a1 = array('hoge' => 'HOGE', 'piyo' => ''); $a2 = array('piyo' => 'PIYO', 'fuge' => 'FUGE'); $a1 = array_merge($a1, $a2); ?>
ってする。
これが原因のバグがあったのでめも。