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

# str_shuffle

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

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

### 説明

function str_shuffle(string `$string`): string

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

警告

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

暗号学的にセキュアな乱数が必要な場合は、Random\Randomizer を Random\Engine\Secure と一緒に使いましょう。簡単なユースケースの場合、random_int() と random_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() - 配列の順列を取得する

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open