Random\Randomizer::pickArrayKeys

(PHP 8 >= 8.2.0)

Random\Randomizer::pickArrayKeysSelect random array keys

Description

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.

Attention

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.

Liste de paramètres

array

The array whose array keys are selected.

num

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

Valeurs de retour

An tableau containing num distinct array keys of array.

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

Erreurs / Exceptions

Exemples

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

<?php
$r
= 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";
?>

Résultat de l'exemple ci-dessus est similaire à :

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

Exemple #2 Picking random values

<?php
$r
= 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],
$keys
);

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

Résultat de l'exemple ci-dessus est similaire à :

Values: 🍎, 🍇

Voir aussi

  • array_keys() - Retourne toutes les clés ou un ensemble des clés d'un tableau
add a note

User Contributed Notes

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