Выбирает случайные ключи массива

# Random\Randomizer::pickArrayKeys

(PHP 8 >= 8.2.0)

Random\Randomizer::pickArrayKeys — Выбирает случайные ключи массива

### Описание

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

Равномерно выбирает `num` отдельных ключей массива входного массива `array`.

Каждый ключ входного массива `array` с равной вероятностью будет возвращён.

Предостережение

Выбор ключей массива зависит от внутренней структуры входного массива `array`. Ключи возвращаемого массива могут быть разными для двух одинаковых входных массивов и двух объектов Random\Engine с одинаковым состоянием, в зависимости от того, как были созданы входные массивы.

### Список параметров

`array`

  Массив, ключи массива которого выбираются.

`num`

  Количество возвращаемых ключей массива; должно быть между `1` и количеством элементов в параметре `array`.

### Возвращаемые значения

Массив (array), содержащий `num` отдельных ключей массива `array`.

Возвращаемый массив (array) будет списком (array_is_list()). Это будет подмножество массивов (array), возвращаемых функцией array_keys().

### Ошибки

- Если параметр `num` меньше `1` или больше количества элементов в параметре `array`, будет выброшено исключение ValueError.
- Любые Throwable, выбрасываемые методом Random\Engine::generate() базового `Random\Randomizer::$engine`.

### Примеры

Пример #1 Пример использования Random\Randomizer::pickArrayKeys()

    <?php
    $r = new \Random\Randomizer();

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

    // Выборка 2 случайных ключей массива:
    echo "Ключи: ", implode(', ', $r->pickArrayKeys($fruits, 2)), "\n";

    // Выборка ещё 3:
    echo "Ключи: ", implode(', ', $r->pickArrayKeys($fruits, 3)), "\n";
    ?>

Вывод приведённого примера будет похож на:

    Ключи: yellow, purple
    Ключи: red, green, yellow

Пример #2 Выбор случайных значений

    <?php
    $r = new \Random\Randomizer();

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

    $keys = $r->pickArrayKeys($fruits, 2);
    // Поиск значения для выбранных ключей.
    $selection = array_map(
        static fn ($key) => $fruits[$key],
        $keys
    );

    echo "Значения: ", implode(', ', $selection), "\n";
    ?>

Вывод приведённого примера будет похож на:

    Значения: 🍎, 🍇

### Смотрите также

- array_keys() - Возвращает все или некоторое подмножество ключей массива

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