ショッピングカートにおいてまとめて購入する場合などの処理で、配列をマージしたい場合のメモ。
$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
