【PHP8.x】str_shuffle関数の使い方

作成日: 更新日:

str_shuffle関数は、与えられた文字列の文字の並びをランダムに入れ替えて、新しい文字列を生成する関数です。

この関数は、引数としてシャッフルしたい文字列を一つ受け取ります。その文字列に含まれる個々の文字の位置を無作為に変更し、結果として得られた新しい文字列を戻り値として返します。元の文字列自体は変更されません。例えば、「Hello」という文字列を渡すと、「loHel」や「oleHl」のように、文字の順序がランダムに入れ替わった文字列が返されます。

この機能は、ランダムな文字列を生成して一時的なパスワードの一部として利用したり、クイズの選択肢の表示順序を毎回変えたりするような場面で役立ちます。また、ゲーム開発において、カードの山札をシャッフルするロジックの一部としても応用できます。

ただし、str_shuffle関数は文字をバイト単位で処理するため、日本語のようなUTF-8などのマルチバイト文字を含む文字列をシャッフルする場合、意図しない結果(文字化けなど)が生じる可能性があります。マルチバイト文字を正確にシャッフルしたい場合は、mb_str_split関数で文字ごとに分割し、その配列をシャッフルしてから再度結合するなどの工夫が必要です。この関数はPHP 8を含む多くのバージョンで利用可能です。

基本的な使い方

構文(syntax)

<?php
$string = "Hello PHP";
$shuffled_string = str_shuffle($string);
echo $shuffled_string; // 例: "oH ePlH" のようになる
?>

引数(parameters)

string $string

  • string $string: 並べ替えたい文字列を指定します。

戻り値(return)

string|false

引数で渡された文字列の文字をランダムに並べ替えた新しい文字列を返します。処理に失敗した場合は false を返します。

【PHP8.x】str_shuffle関数の使い方 | いっしー@Webエンジニア