Как суммировать элементы массива таким образом
`Collection {#263 ▼
#items: array:3 [▼
0 => {#275 ▼
+"platform": "Google"
+"positive": "10"
+"negative": "5"
+"blocked": "1"
}
1 => {#274 ▼
+"platform": "Yandex"
+"positive": "6"
+"negative": "2"
+"blocked": "1"
}
2 => {#269 ▼
+"platform": "Google"
+"positive": "15"
+"negative": "35"
+"blocked": "23"
}
]
}`
что бы получить
`Collection {#263 ▼
#items: array:3 [▼
0 => {#274 ▼
+"platform": "Yandex"
+"positive": "6"
+"negative": "2"
+"blocked": "1"
}
1 => {#269 ▼
+"platform": "Google"
+"positive": "25"
+"negative": "40"
+"blocked": "24"
}
]
}`
$result = array_values(array_reduce($array, function($carry, $item) {
foreach($item as $k => $v) {
if (isset($carry[$item['platform']][$k])) {
if (is_numeric($v)) $carry[$item['platform']][$k] += $v;
}
else $carry[$item['platform']][$k] = $v;
}
return $carry;
}, []));
print_r($result);
https://3v4l.org/ZJu8B
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости