str_shuffle

文字列をランダムにシャッフルする

説明

string str_shuffle(string $string)

str_shuffle は文字列をシャッフルします。 考えられるすべての順列のうちのひとつを作成します。

警告

この関数が生成する値は、暗号学的にセキュアではありません。そのため、これを暗号や、戻り値を推測できないことが必須の値として使っては いけません

暗号学的にセキュアな乱数が必要な場合は、Random\RandomizerRandom\Engine\Secure と一緒に使いましょう。簡単なユースケースの場合、random_intrandom_bytes 関数が、オペレーティングシステムの CSPRNG を使った、 便利で安全な API を提供します。

警告

この関数は、乱数のソースとしてグローバルな Mt19937 (メルセンヌ・ツイスター) インスタンスを使用するため、グローバルな Mt19937 を使用する他のすべての関数と状態を共有します。 これらの関数のいずれかを使用すると、スコープに関係なく、すべての他の関数のシーケンスも進みます。

mt_srand または srand に既知の値を指定してシードすることで再現可能なシーケンスを生成する場合、この関数からの出力も再現可能になります。

新しく書くコードでは、すべて Random\Randomizer のメソッドを使用することを推奨します。

パラメータ

string

入力文字列。

戻り値

シャッフルされた文字列を返します。

変更履歴

バージョン 説明
7.1.0 内部的なランダム化アルゴリズムは、 libc の rand 関数ではなく、 » メルセンヌツイスタ 乱数生成器を使うように 変更されました

例1 str_shuffle の例

<?php
$str = 'abcdef';
$shuffled = str_shuffle($str);

// bfdaec のような文字列を返します
echo $shuffled;
?>

参考

  • Random\Randomizer::shuffleBytes
  • Random\Randomizer::shuffleArray