3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array = array( array('FIRSTID' =>58, 'SECONDID' =>12, 'TYPE' =>319, 'AMOUNT' =>300 ), array('FIRSTID' =>58, 'SECONDID' =>12, 'TYPE' =>319, 'AMOUNT' =>600 ), array('FIRSTID' =>59, 'SECONDID' =>14, 'TYPE' =>321, 'AMOUNT' =>900 ), array('FIRSTID' =>59, 'SECONDID' =>14, 'TYPE' =>321, 'AMOUNT' =>500 ), array('FIRSTID' =>60, 'SECONDID' =>13, 'TYPE' =>320, 'AMOUNT' =>1000 ), array('FIRSTID' =>60, 'SECONDID' =>13, 'TYPE' =>321, 'AMOUNT' =>1500 ), ); $groups = array(); foreach ($array as $item) { $key = $item['FIRSTID'].''.$item['SECONDID'].''.$item['TYPE']; if (!array_key_exists($key, $groups)) { $groups[$key] = array( 'FIRSTID' => $item['FIRSTID'], 'SECONDID' => $item['SECONDID'], 'TYPE' => $item['TYPE'], 'AMOUNT' => $item['AMOUNT'], ); } else { $groups[$key]['AMOUNT'] = $groups[$key]['AMOUNT'] + $item['AMOUNT']; } } echo '<pre>'; print_r($groups); echo '</pre>';
Output for 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.27, 8.4.1 - 8.4.14
<pre>Array ( [5812319] => Array ( [FIRSTID] => 58 [SECONDID] => 12 [TYPE] => 319 [AMOUNT] => 900 ) [5914321] => Array ( [FIRSTID] => 59 [SECONDID] => 14 [TYPE] => 321 [AMOUNT] => 1400 ) [6013320] => Array ( [FIRSTID] => 60 [SECONDID] => 13 [TYPE] => 320 [AMOUNT] => 1000 ) [6013321] => Array ( [FIRSTID] => 60 [SECONDID] => 13 [TYPE] => 321 [AMOUNT] => 1500 ) ) </pre>

preferences:
141.66 ms | 409 KiB | 5 Q