array_rand()

array_rand() — Pick one or more random keys out of an array.

Built-in function of PHP 8.5. The manual lists it as available in PHP 4, PHP 5, PHP 7, PHP 8. This page is the reference card: signature, parameters and return value, plus the changelog and the example the manual provides.

What it does

Picks one or more random entries out of an array, and returns the key (or keys) of the random entries.

Signature

array_rand(array $array, int $num = 1): int|string|array

Parameters

ParameterTypeWhat it takes
$arrayarrayThe input array. Cannot be empty.
$numintSpecifies how many entries should be picked. Must be greater than zero, and less than or equal to the length of array

Return value

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.

Example

A runnable snippet:

$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";

Changelog

VersionChange
8.0.0array_rand() now throws a ValueError if num is out of range; previously an E_WARNING was raised, and the function returned null.
8.0.0array_rand() now throws a ValueError if array is empty; previously an E_WARNING was raised, and the function returned null.
7.1.0The internal randomization algorithm has been changed to use the Mersenne Twister Random Number Generator instead of the libc rand function.

All PHP 8.5 built-in functions

Reference card built from the PHP manual page array_rand() (PHP documentation, CC BY 3.0). The page is generated from the manual, so the wording of the parameter and return value text follows php.net.