- 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 = []): array {
if (count($letters) < 2) {
$result['unpaired'] = $letters;
return $result;
}
$keys = array_rand($letters, 2);
shuffle($keys);
$result['paired'][] = $keys[0] . $keys[1];
--$letters[$keys[0]];
--$letters[$keys[1]];
return randomPairs(array_filter($letters), $result);
}