ショッピングカートにおいてまとめて購入する場合などの処理で、配列をマージしたい場合のメモ。
$a1 = array( "a" => 2, "b" => 0, "c" => 5 ); $a2 = array( "a" => 3, "b" => 9, "c" => 7, "d" => 10 );
上記のような場合
Array ( "a" => 3, //2+1 "b" => 9, //9+0 "c" => 12, //5+7 "d" => 10, )
マージして結果をこうしたい。
どうやる
$sums = array(); //結果となる配列 foreach (array_keys($a1 + $a2) as $key) { $sums[$key] = @($a1[$key] + $a2[$key]); }
array_keys()で各配列のキーを取り出し+演算子でマージしたものをループ。
各キーに配列1と配列2の値を加算したものを入れていく。
引用元/参照
php – How to merge two arrays by summing the merged values – Stack Overflow