Shuffle an array

- « rsort

- sizeof »

- PHP Manual
- Array Functions
- Shuffle an array

# shuffle

(PHP 4, PHP 5, PHP 7, PHP 8)

shuffle — Shuffle an array

### Description

shuffle(array `&$array`): true

This function shuffles (randomizes the order of the elements in) an array.

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.

### Parameters

`array`

  The array.

### Return Values

Always returns `true`.

### Changelog

Version | Description
--- | ---
7.1.0 | The internal randomization algorithm has been changed to use the » Mersenne Twister Random Number Generator instead of the libc rand function.

### Examples

Example #1 shuffle() example

    <?php$numbers = range(1, 20);shuffle($numbers);foreach ($numbers as $number) {    echo "$number ";}?>

### Notes

> Note: This function assigns new keys to the elements in `array`. It will remove any existing keys that may have been assigned, rather than just reordering the keys.

> Note:

> Resets array's internal pointer to the first element.

### See Also

- Random\Randomizer::shuffleArray() - Get a permutation of an array
- Random\Randomizer::shuffleBytes() - Get a byte-wise permutation of a string
- Random\Randomizer::pickArrayKeys() - Select random array keys
- The comparison of array sorting functions