<?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