(PHP 4, PHP 5, PHP 7, PHP 8)
array_rand — Выбирает один или несколько случайных ключей из массива
Функция выбирает в массиве один или несколько случайных элементов. Для одного элемента возвращается ключ, а для нескольких элементов — массив ключей.
Функция не создаёт безопасные для криптографических целей значения, поэтому функцию нельзя использовать в криптографических целях или ожидать возврата значения, которое невозможно угадать.
Безопасные для криптографических целей случайные последовательности создаёт композиция класса Random\Randomizer с движком Random\Engine\Secure. В простых сценариях пользуются функциями random_int() и random_bytes() с удобным и безопасным API-интерфейсом, который поддерживается безопасным для криптографических целей CSPRNG-генератором псевдослучайных чисел операционной системы.
arrayВходной массив. При передаче пустого массива функция выдаст ошибку.
num
Количество элементов для выбора. Функция выдаст ошибку, если значение меньше единицы
или превышает размер массива array.
При запросе одного элемента функция array_rand() возвращает случайный ключ, а для нескольких элементов — массив ключей. Логика возврата случайных ключей, а не значений, расширяет выбор случайных элементов: значения, которые получают из исходного массива по случайным ключам, также составляют случайную выборку. В выходном массиве ключи сохраняют относительный порядок, который соответствует порядку элементов в исходном массиве.
Функция выбрасывает ошибку ValueError,
если в параметр array передали пустой массив
или значение параметра num выходит за пределы диапазона.
| Версия | Описание |
|---|---|
| 8.0.0 |
Функция array_rand() теперь выбрасывает
ошибку ValueError,
если значение параметра num выходит
за пределы диапазона; раньше функция выдавала ошибку уровня
E_WARNING и возвращала значение null.
|
| 8.0.0 |
Функция array_rand() теперь выбрасывает
ошибку ValueError,
если в параметр array передали пустой массив;
раньше функция выдавала ошибку уровня E_WARNING
и возвращала значение null.
|
| 7.1.0 | Внутренний алгоритм выбора случайных элементов изменился с функции rand библиотеки libc на генератор случайных чисел на базе » Вихря Мерсе́нна. |
Пример #1 Пример выбора случайных ключей массива функцией array_rand()
<?php
$input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
$rand_keys = array_rand($input, 2);
echo $input[$rand_keys[0]] . "\n";
echo $input[$rand_keys[1]] . "\n";
?>