CascadiaPHP 2024


(PHP 8 >= 8.2.0)

Random\Randomizer::pickArrayKeysSelect random array keys


public Random\Randomizer::pickArrayKeys(array $array, int $num): array

Uniformly selects num distinct array keys of the input array.

Each key of the input array is equally likely to be returned.


The selection of the array keys depends on the internal structure of the input array. The returned array keys might be different for two equal input arrays and two Random\Engines with identical state, depending on how the input arrays have been created.



The array whose array keys are selected.


The number of array keys to return; must be between 1 and the number of elements in array.


An Array containing num distinct array keys of array.

The returned Array will be a list (array_is_list()). It will be a subset of the Array returned by array_keys().



Beispiel #1 Random\Randomizer::pickArrayKeys() example

= new \Random\Randomizer();

$fruits = [ 'red' => '🍎', 'green' => '🥝', 'yellow' => '🍌', 'pink' => '🍑', 'purple' => '🍇' ];

// Pick 2 random array keys:
echo "Keys: ", implode(', ', $r->pickArrayKeys($fruits, 2)), "\n";

// Pick another 3:
echo "Keys: ", implode(', ', $r->pickArrayKeys($fruits, 3)), "\n";

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Keys: yellow, purple
Keys: red, green, yellow

Beispiel #2 Picking random values

= new \Random\Randomizer();

$fruits = [ 'red' => '🍎', 'green' => '🥝', 'yellow' => '🍌', 'pink' => '🍑', 'purple' => '🍇' ];

$keys = $r->pickArrayKeys($fruits, 2);
// Look up the values for the picked keys.
$selection = array_map(
static fn (
$key) => $fruits[$key],

"Values: ", implode(', ', $selection), "\n";

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Values: 🍎, 🍇

Siehe auch

  • array_keys() - Liefert alle Schlüssel oder eine Teilmenge aller Schlüssel eines Arrays
add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top