У меня есть этот массив, возвращенный из вызова API.
$areas = [
[
'name' => 'XDFF',
'total' => 12
],
[
'name' => 'XDEF',
'total' => 20
],
[
'name' => 'XDFF',
'total' => 23
]
];
Моя задача состоит в том, чтобы объединить те, которые имеют похожее имя, в данном случае 'XDFF', и добавить их итоги.
Я могу сделать это с помощью этого цикла, но я ищу более оптимизированный способ, не проходя через него, это возможно?
$newAreas = [];
foreach ($areas as $area) {
if (array_key_exists($area['name'], $newAreas)) {
$newAreas[$area['name']]['total'] += $area['total'];
continue;
}
$newAreas[$area['name']] = $area;
}
print_r($newAreas);