GRAPHNOTES

【PHP】2つの配列をマージし、キーが同じ数値を合算するメモ

日付:
2018年08月25日
カテゴリー:
HTML・CSS・PHP

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

$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

広告枠