Select random array keys

# Random\Randomizer::pickArrayKeys

(PHP 8 >= 8.2.0)

Random\Randomizer::pickArrayKeys — Select random array keys

### Beschreibung

public function 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.

Achtung

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.

### Parameter-Liste

`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`.

### Rückgabewerte

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().

### Fehler/Exceptions

- If `num` is less than `1` or greater than the number of elements in `array`, a ValueError will be thrown.
- Alle Throwables, die von der Methode Random\Engine::generate() der zugrundeliegenden `Random\Randomizer::$engine` ausgelöst werden.

### Beispiele

Beispiel #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";
    ?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

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

Beispiel #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";
    ?>

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

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open