3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array = Array ( '0' => Array ( 'ac_no' => 100001, 'amount' => 0.00 ), '1' => Array ( 'ac_no' => 100001, 'amount' => 51255.11 ), '2' => Array ( 'ac_no' => 100001, 'amount' => -500.00 ), '3' => Array ( 'ac_no' => 100001, 'amount' => -621.05 ), '4' => Array ( 'ac_no' => 100002, 'amount' => .00 ), '5' => Array ( 'ac_no' => 100003, 'amount' => .00 ), '6' => Array ( 'ac_no' => 100004, 'amount' => 20714.00 ), '7' => Array ( 'ac_no' => 100004, 'amount' => 0.00 ) ); $acNoWiseArray = []; foreach($array as $arr){ $acNoWiseArray[$arr['ac_no']]['sum'][] = $arr['amount']; } $finalArray = []; foreach($acNoWiseArray as $key=>&$value){ foreach($value['sum'] as $k=> $val){ $finalArray[$key]['new_sum'][] = (is_array($value)) ? array_sum($value['sum']) : $value['sum'][$k]; array_shift($value['sum']); } } print_r($finalArray);
Output for 7.4.0 - 7.4.33, 8.0.1 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
Array ( [100001] => Array ( [new_sum] => Array ( [0] => 50134.06 [1] => 50134.06 [2] => -1121.05 [3] => -621.05 ) ) [100002] => Array ( [new_sum] => Array ( [0] => 0 ) ) [100003] => Array ( [new_sum] => Array ( [0] => 0 ) ) [100004] => Array ( [new_sum] => Array ( [0] => 20714 [1] => 0 ) ) )

preferences:
126.32 ms | 403 KiB | 121 Q