<?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