- var_export: documentation ( source)
- array_rand: documentation ( source)
- array_filter: documentation ( source)
- shuffle: documentation ( source)
<?php
$letters = ['A' => 8, 'B' => 16, 'C' => 15, 'D' => 4, 'E' => 1];
var_export(
randomPairs($letters)
);
function randomPairs(array $letters): array {
$result['paired'] = [];
while (count($letters) > 1) {
$keys = array_rand($letters, 2);
shuffle($keys);
$result['paired'][] = $keys[0] . $keys[1];
--$letters[$keys[0]];
--$letters[$keys[1]];
$letters = array_filter($letters);
}
$result['unpaired'] = $letters;
return $result;
}