(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
str_shuffle — Переставляет символы в строке случайным образом
Функция str_shuffle() перемешивает символы в строке путём случайной перестановки.
Функция не создаёт безопасные для криптографических целей значения, поэтому функцию нельзя использовать в криптографических целях или ожидать возврата значения, которое невозможно угадать.
Безопасные для криптографических целей случайные последовательности создаёт композиция класса Random\Randomizer с движком Random\Engine\Secure. В простых сценариях пользуются функциями random_int() и random_bytes() с удобным и безопасным API-интерфейсом, который поддерживается безопасным для криптографических целей CSPRNG-генератором псевдослучайных чисел операционной системы.
Функция создаёт случайные последовательности через глобальный экземпляр генератора псевдослучайных чисел на основе алгоритма Mt19937 «Вихрь Мерсе́на» поэтому разделяет состояние с остальными функциями, которые генерируют случайности через глобальный генератор. Вызов каждой такой функции продвигает последовательность, независимо от области вызова.
Функция выдаст предсказуемые одинаковые последовательности, если инициализировать генератор псевдослучайных чисел функцией mt_srand() или srand() одним и тем же значением.
В новом коде случайные последовательности лучше генерировать через объект Random\Randomizer.
stringВходная строка.
Функция возвращает перемешанную строку.
| Версия | Описание |
|---|---|
| 7.1.0 | Внутренний алгоритм генерации случайных чисел изменился с функции rand библиотеки libc на генератор на базе » Вихря Мерсе́на. |
Пример #1 Пример перемешивания символов в строке функцией str_shuffle()
<?php
$str = 'abcdef';
$shuffled = str_shuffle($str);
// Выведет что-то вроде: bfdaec
echo $shuffled;