W3docs

Функция shuffle() в PHP

Узнайте, как функция shuffle() в PHP случайным образом перемешивает элементы массива на месте, с примерами использования.

Добро пожаловать в наше подробное руководство по функции PHP shuffle. В этой статье мы объясним, что делает функция shuffle, как она работает, и приведём практические примеры её использования в ваших PHP-проектах.

Функция shuffle в PHP — это встроенная функция, которая перемешивает элементы массива случайным образом. Она изменяет исходный массив непосредственно и возвращает булево значение (true при успехе, false при ошибке).

Функция shuffle работает, переставляя элементы массива в случайном порядке. Для обеспечения равной вероятности каждой перестановки используется генератор случайных чисел PHP.

Вот синтаксис функции shuffle:

shuffle(array &$array): bool // Note: array type hint requires PHP 8.0+

Параметр $array передаётся по ссылке, то есть исходный массив изменяется напрямую. Функция возвращает true при успехе или false при ошибке.

Примечание: в PHP 8.1+ передача значения, не являющегося массивом, в shuffle() вызывает предупреждение об устаревании.

Рассмотрим практические примеры использования функции shuffle в PHP.

Пример 1: Перемешивание массива чисел

Пример перемешивания массива чисел в PHP

php— editable, runs on the server

Вывод:

Array
(
    [0] => 5
    [1] => 1
    [2] => 4
    [3] => 3
    [4] => 2
)

Пример 2: Перемешивание массива строк

Пример перемешивания массива строк в PHP

php— editable, runs on the server

Вывод:

Array
(
    [0] => kiwi
    [1] => banana
    [2] => grape
    [3] => apple
    [4] => orange
)

Пример 3: Перемешивание ассоциативного массива

Пример перемешивания ассоциативного массива в PHP

Обратите внимание, что shuffle() всегда переиндексирует массивы в последовательные числовые ключи, уничтожая все существующие строковые ключи. Чтобы сохранить ассоциативные ключи, необходимо вручную перемешивать ключи, как показано ниже.

<?php

$person = ["name" => "John", "age" => 30, "city" => "New York"];

// Shuffle the keys of the array
$keys = array_keys($person);
shuffle($keys);

// Create a new array with the shuffled keys
$shuffled_person = [];
foreach ($keys as $key) {
    $shuffled_person[$key] = $person[$key];
}

print_r($shuffled_person);

Вывод:

Array
(
    [city] => New York
    [age] => 30
    [name] => John
)

В этой статье мы объяснили, что такое функция shuffle, как она работает, и привели практические примеры её использования в ваших PHP-проектах. Надеемся, что это руководство оказалось полезным, и теперь вы сможете уверенно использовать функцию shuffle.

Диаграмма:

graph TD
A((array)) --input--> B(shuffle)
B --output--> C((modified array))

Спасибо за прочтение нашего руководства по функции shuffle() в PHP. Если у вас есть вопросы или пожелания, не стесняйтесь обращаться к нам.

Практика

Практика
Какова цель функции shuffle() в PHP?
Какова цель функции shuffle() в PHP?
Was this page helpful?