3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array = [ ['group' => 'Apple', 'num' => 5, 'price' => 10], ['group' => 'Apple', 'num' => 2, 'price' => 8], ['group' => 'Orange', 'num' => 4, 'price' => 6], ['group' => 'Orange', 'num' => 12, 'price' => 24], ]; $result = []; foreach ($array as $row) { if (!isset($ref[$row['group']])) { $ref[$row['group']] = $row; $result[] =& $ref[$row['group']]; continue; } $ref[$row['group']]['num'] += $row['num']; $ref[$row['group']]['price'] += $row['price']; } var_export($result);
Output for 8.1.0 - 8.1.28, 8.2.0 - 8.2.19, 8.3.0 - 8.3.7
array ( 0 => array ( 'group' => 'Apple', 'num' => 7, 'price' => 18, ), 1 => array ( 'group' => 'Orange', 'num' => 16, 'price' => 30, ), )

preferences:
94.66 ms | 402 KiB | 62 Q