3v4l.org

run code in 300+ PHP versions simultaneously
<?php $items = array( [ 'menu_id' => 10, 'current_price' => 150, 'num' => 10 ], [ 'menu_id' => 12, 'current_price' => 200, 'num' => 20 ], [ 'menu_id' => 10, 'current_price' => 150, 'num' => 30 ], ['menu_id' => 11, 'current_price' => 100, 'num' => 40 ], [ 'menu_id' => 11, 'current_price' => 100, 'num' => 50 ], ['menu_id' => 11, 'current_price' => 200, 'num' => 60 ], ['menu_id' => 13, 'current_price' => 300, 'num' => 70 ] ) ; $grouped = []; foreach($items as $v){ $index = $v['menu_id'].'-'.$v['current_price']; isset($grouped[$index]) ? ($grouped[$index]['num'] += $v['num']) : ($grouped[$index] = $v); } print_r($grouped);

preferences:
29.39 ms | 402 KiB | 5 Q