(PHP 8 >= 8.2.0)
Random\Randomizer::pickArrayKeys — Выбирает случайные ключи массива
$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.
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";
?>
Результатом выполнения данного примера будет что-то подобное:
Значения: 🍎, 🍇