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], ]; var_export( array_values( array_reduce( $array, function ($result, $row) { if (!isset($result[$row['group']])) { $result[$row['group']] = $row; } else { $result[$row['group']]['num'] += $row['num']; $result[$row['group']]['price'] += $row['price']; } return $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:
101.26 ms | 402 KiB | 62 Q