3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array = [ ['mail' => 'mail1@example.com', 'coins' => '25000.00'], ['mail' => 'mail2@example.com', 'coins' => '500000.00'], ['mail' => 'mail1@example.com', 'coins' => '10000.00'], ['mail' => 'mail2@example.com', 'coins' => '10000.00'], ['mail' => 'mail3@example.com', 'coins' => '20000.00'], ]; $result = []; foreach ($array as ['mail' => $mail, 'coins' => $coins]) { if (!isset($result[$mail])) { $result[$mail] = [1, $coins]; // declare the data for the first instance of mail } else { ++$result[$mail][0]; // increment the running count $result[$mail][1] += $coins; // add coins to running total } } foreach ($result as $mail => $row) { printf("%s (%d), %.2f coins\n", $mail, ...$row); }
Output for 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.26, 8.4.1 - 8.4.13
mail1@example.com (2), 35000.00 coins mail2@example.com (2), 510000.00 coins mail3@example.com (1), 20000.00 coins

preferences:
146.09 ms | 407 KiB | 5 Q