【PHP】str_shuffle()で指定した文字列をシャッフルする!

(この記事は2022年7月19日に投稿されました。)

PHPで指定した文字列をシャッフルする方法として、str_shuffle()があります。

str_shuffle()とは指定した文字列をシャッフルする関数であり、文字列を指定することでシャッフル後の文字列を返り値として返すようになります。

しかし、全角文字列に使用した場合は文字化を起こしてしまいますので注意してください。

そして、str_shuffle()はint型やfloat型の数値などもシャッフルすることができます。

そのため、指定した文字列をシャッフルして別の文字列として表示したい場合は、str_shuffle()を使用しましょう。

今回はPHPのstr_shuffle()で指定した文字列をシャッフルする方法について紹介していきます。

この記事はこんな方におすすめ
・PHPで指定した文字列をシャッフルしたい人




str_shuffle()とは

str_shuffle()とは指定された文字列の累乗を計算する関数となります。

例えば、「abc」という文字列に対してstr_shuffle()を使用すると「abc, acb, bac, bca, cab, cba」のいずれかがランダムで返り値として返されます。

str_shuffle()の書き方

str_shuffle()の書き方は下記のようになります。

str_shuffleは、1つのパラメータを指定することで使用することができます。

str_shuffle()のパラメータ

str_shuffle()のパラメータは下記のようになります。

  1. シャッフルしたい文字列(必須):
    シャッフルしたい文字列を指定する

str_shuffle()は、必須パラメータとして「シャッフルしたい文字列」を指定します。

str_shuffle()で指定した文字列をシャッフルするサンプルコード

str_shuffle()で指定した文字列をシャッフルするサンプルコードをご紹介します。

ここでは、下記の3つの場合でstr_shuffle()を使用します。

  1. 2文字以上の文字列を指定した場合
  2. 1文字の文字列を指定した場合
  3. 空の文字列を指定した場合

2文字以上の文字列を指定した場合

2文字以上の文字列を指定した場合に、str_shuffle()を使用してみます。

⚫︎ index.php

⚫︎ 実行結果

2文字以上の文字列を指定した場合にstr_shuffle()を使用した結果

str_shuffle()によって、指定した文字列がシャッフルされています。

1文字の文字列を指定した場合

1文字の文字列を指定した場合に、str_shuffle()を使用してみます。

⚫︎ index.php

⚫︎ 実行結果

1文字の文字列を指定した場合にstr_shuffle()を使用した結果

1文字の文字列を指定した場合は、シャッフルされずそのまま表示されるようになります。

空の文字列を指定した場合

空の文字列を指定した場合に、str_shuffle()を使用してみます。

⚫︎ index.php

⚫︎ 実行結果

空の文字列を指定した場合にstr_shuffle()を使用した結果

空の文字列を指定した場合もシャッフルされずそのまま表示されるようになります。

str_shuffle()のシャッフルしたい文字列に数値を指定した場合

str_shuffle()のシャッフルしたい文字列に数値を指定してみます。

int型の数値を指定した場合

int型の数値を指定した場合に、str_shuffle()を使用してみてみます。

⚫︎ index.php

⚫︎ 実行結果

int型の数値を指定した場合にstr_shuffle()を使用した結果

int型の数値を指定してstr_shuffle()を使用すると、数値がシャッフルされて表示されます。

しかし、str_shuffle()を使用した後はstring型に変換されます。

float型の数値を指定した場合

float型の数値を指定した場合に、str_shuffle()を使用してみてみます。

⚫︎ index.php

⚫︎ 実行結果

float型の数値を指定した場合にstr_shuffle()を使用した結果

float型の数値を指定してstr_shuffle()を使用すると、数値がシャッフルされて表示されます。

しかし、こちらもstr_shuffle()を使用した後はstring型に変換されます。

str_shuffle()のシャッフルしたい文字列に全角文字列を指定した場合

シャッフルしたい文字列に全角文字列を指定してstr_shuffle()を使用してみます。

⚫︎ index.php

⚫︎ 実行結果

シャッフルしたい文字列に全角文字列を指定してstr_shuffle()を使用した結果

全角文字列を指定してstr_shuffle()を使用すると、文字化けが発生してしまいます。

str_shuffle()で配列の値をシャッフルするサンプルコード

str_shuffle()で配列の値をシャッフルするサンプルコードをご紹介します、

⚫︎ index.php

⚫︎ 実行結果

配列の値を指定してstr_shuffle()を使用した結果

str_shuffle()で指定した配列の値をシャッフルして表示しています。

また、foreach文を使用することで、全ての配列の値をシャッフルして表示することができます。

もし、要素の位置をシャッフルしたい場合はshuffle()を使用してください。

shuffle()について詳しく知りたい場合は下記の記事をご参考ください。

foreach文について詳しく知りたい場合はは下記の記事をご参考ください。

まとめ

⚫︎ str_shuffle()とは指定された文字列の累乗を計算する関数である

⚫︎ str_shuffle()を使用するには1つのパラメータを指定する
・ シャッフルしたい文字列(必須)

⚫︎ str_shuffle()は2文字以上の文字列を指定すると、指定した文字列がャッフルされて返される

⚫︎ str_shuffle()は1文字の文字列を指定すると、シャッフルされずそのまま返される

⚫︎str_shuffle()は空の文字列を指定すると、シャッフルされずそのまま返される

⚫︎ str_shuffle()のシャッフルしたい文字列に数値を指定すると、数値がシャッフルされて返される
(しかし、string型として返される)

⚫︎ 全角文字列を指定して、str_shuffle()を使用すると文字化けが発生する

⚫︎ 配列の値を指定して、str_shuffle()を使用すると、値がシャッフルされて返される
(全ての配列の値をシャッフルするにはforeach文を使用する)

コメントを残す

メールアドレスが公開されることはありません。