Я, вероятно, что-то неправильно понимаю, потому что я не получаю тот же вывод, который вы показали, в любом случае, это может помочь получить желаемый ответ
$dataset = [
[
['1GB' => [1, 2, 1, 3]],
['2GB' => [1, 2, 1, 3]],
],
[
['1GB' => [1, 2, 1, 3]],
['2GB' => [1, 2, 1, 3]],
['5GB' => [1, 2, 1, 3]],
],
[
['3GB' => [1, 2, 1, 3]],
['4GB' => [1, 2, 1, 3]],
],
[
['3GB' => [1, 2, 1, 3]],
['4GB' => [1, 2, 1, 3]],
]
];
$resume = [];
foreach ($dataset as $data) {
foreach ($data as $item) {
foreach ($item as $key => $value) {
if (!array_key_exists($key, $resume)) {
$resume[$key] = $value;
} else {
foreach ($value as $index => $number) {
$resume[$key][$index] += $number;
}
}
}
}
}
ksort($resume);
print_r($resume);
Вывод
Array
(
[1GB] => Array
(
[0] => 2
[1] => 4
[2] => 2
[3] => 6
)
[2GB] => Array
(
[0] => 2
[1] => 4
[2] => 2
[3] => 6
)
[3GB] => Array
(
[0] => 2
[1] => 4
[2] => 2
[3] => 6
)
[4GB] => Array
(
[0] => 2
[1] => 4
[2] => 2
[3] => 6
)
[5GB] => Array
(
[0] => 1
[1] => 2
[2] => 1
[3] => 3
)
)