Вы можете запустить свои значения через array_sum
, используя array_map
$array = array_map('array_sum', $array);
В общем, что-то вроде -
$rows = [
['name' => 'name1', 'from' => 4, 'to' => 3],
['name' => 'name1', 'from' => 32, 'to' => 20],
['name' => 'name1', 'from' => 999, 'to' => 989],
['name' => 'name2', 'from' => 10.25, 'to' => 10],
['name' => 'name2', 'from' => 10.55, 'to' => 10],
['name' => 'name2', 'from' => 10.35, 'to' => 10],
['name' => 'name2', 'from' => 5, 'to' => 0],
];
$array = [];
foreach ($rows as $row) {
$array[$row['name']][] = $row['from'] - $row['to'];
}
print_r($array); // what you have so far
$array = array_map('array_sum', $array);
print_r($array); // what you want
См. https://www.tehplayground.com/paAkQ8riS5KwFSfP
Хотя лучшим решением было бы добавить их как вы go, например
$array = [];
foreach ($rows as $row) {
$array[$row['name']] += $row['from'] - $row['to'];
}
print_r($array);
См. https://www.tehplayground.com/kA2QDWUluJ53Ueia