(PHP 8 >= 8.2.0)
Random\Randomizer::pickArrayKeys — Выбирает случайные ключи массива
Равномерно выбирает num отдельных ключей массива входного массива array.
Каждый ключ входного массива array с равной вероятностью будет возвращён.
Выбор ключей массива зависит от внутренней структуры входного массива array.
Ключи возвращаемого массива могут быть разными для двух одинаковых входных массивов
и двух объектов Random\Engine с одинаковым состоянием,
в зависимости от того, как были созданы входные массивы.
arrayМассив, ключи массива которого выбираются.
num
Количество возвращаемых ключей массива;
должно быть между 1 и количеством элементов в параметре array.
Массив (array), содержащий num отдельных ключей массива array.
Возвращаемый массив (array) будет списком (array_is_list()). Это будет подмножество массивов (array), возвращаемых функцией array_keys().
num меньше 1 или больше
количества элементов в параметре array,
будет выброшено исключение ValueError.
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";
?>Вывод приведённого примера будет похож на:
Значения: 🍎, 🍇