3v4l.org

run code in 300+ PHP versions simultaneously
<?php $payments = [ ['bookingId' => 1, 'vendorId' => 3, 'amount' => 50], ['bookingId' => 1, 'vendorId' => 3, 'amount' => 85], ['bookingId' => 1, 'vendorId' => 4, 'amount' => 14], ]; $result = array_reduce( $payments, function(array $carry, array $payment): array { $carry[$payment['vendorId']] = $payment; $carry[$payment['vendorId']]['amount'] = ($carry[$payment['vendorId']]['amount'] ?? 0) + $payment['amount']; return $carry; }, [] ); var_dump(array_values($result));
Output for 8.1.0 - 8.1.34, 8.2.0 - 8.2.30, 8.3.0 - 8.3.30, 8.4.1 - 8.4.18, 8.5.0 - 8.5.3
array(2) { [0]=> array(3) { ["bookingId"]=> int(1) ["vendorId"]=> int(3) ["amount"]=> int(170) } [1]=> array(3) { ["bookingId"]=> int(1) ["vendorId"]=> int(4) ["amount"]=> int(28) } }

preferences:
54.85 ms | 1003 KiB | 4 Q