Random\Randomizer::pickArrayKeys

(PHP 8 >= 8.2.0)

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

Описание

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

Ошибки

Примеры

Пример #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() - Возвращает все или некоторое подмножество ключей массива
add a note add a note

User Contributed Notes

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