Перейти к содержимому

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

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

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

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

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

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

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

Примечание: В PHP 8.1+ передача не-массива в shuffle() вызывает предупреждение об устаревании.

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

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

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

php
<?php

$numbers = [1, 2, 3, 4, 5];
shuffle($numbers);
print_r($numbers);

Вывод:

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

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

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

php
<?php

$fruits = ["apple", "banana", "orange", "kiwi", "grape"];
shuffle($fruits);
print_r($fruits);

Вывод:

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

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

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

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

php
<?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);

Вывод:

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

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

Схема:

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

Практика

Какова цель функции shuffle() в PHP?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.