array_rand
(PHP 4, PHP 5, PHP 7, PHP 8)
array_rand — Pick one or more random keys out of an array
Description
Caution
This function does not generate cryptographically secure values, and must not
be used for cryptographic purposes, or purposes that require returned values to be unguessable.
If cryptographically secure randomness is required, the Random\Randomizer may be
used with the Random\Engine\Secure engine. For simple use cases, the random_int()
and random_bytes() functions provide a convenient and secure API that is backed by
the operating system’s CSPRNG.
Caution
This function uses the global Mt19937 (“Mersenne Twister”) instance as the source of randomness and thus shares its state with all other functions using the global Mt19937.
Using any of these functions advances the sequence for all the other functions, regardless of scope.
Generating repeatable sequences by seeding mt_srand() or srand() with a known value will also yield repeatable output from this function.
Prefer using Random\Randomizer methods in all newly written code.
Parameters
array
-
The input array.
Cannot be empty.
num
-
Specifies how many entries should be picked.
Must be greater than zero, and less than or equal to the length of array
Return Values
When picking only one entry, array_rand() returns
the key for a random entry. Otherwise, an array of keys for the random
entries is returned. This is done so that random keys can be picked
from the array as well as random values. If multiple keys are returned,
they will be returned in the order they were present in the original array.
Errors/Exceptions
Throws a ValueError if array is empty,
or if num is out of range.
Examples
Example #1 array_rand() example
<?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";
?>