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));

preferences:
38.85 ms | 406 KiB | 5 Q