shuffle

関数の概要

shuffle は、PHPの配列をランダムに並び替えるための組み込み関数です。指定した配列の要素をシャッフルし、順序をランダムな順番に変更します。配列のデータの順序を変えたい場合や、ゲームや抽選などランダム性が求められる処理でよく使用されます。

パラメータの説明

  • array &$array:シャッフルしたい配列を参照渡しで指定します。この配列の順序が関数実行後に変更されます。

戻り値

shuffle の戻り値は bool 型で、成功した場合は true、失敗した場合は false を返します。配列が空の場合や引数が配列でない場合などに false となることがあります。

使用例

基本的な使い方

<?php
$fruits = ["りんご", "バナナ", "みかん", "ぶどう"];
shuffle($fruits);
print_r($fruits);
?>

配列 $fruits の要素をランダムに並び替えています。実行するたびに順序が変わるため、毎回違った結果が得られます。

数字の配列をシャッフルする例

<?php
$numbers = range(1, 10); // 1から10までの数字を配列に
shuffle($numbers);
echo implode(", ", $numbers);
?>

1から10の数字が順番を変えて表示されます。ゲームのカードシャッフルや抽選番号決定の際に便利です。

連想配列は使い方に注意

<?php
$assoc = [
  "a" => "りんご",
  "b" => "バナナ",
  "c" => "みかん"
];
shuffle($assoc);
print_r($assoc);
?>

連想配列の場合、shuffle はキーを保持せず数値添字に書き換えられます。キーを残したまま順序を変えたい場合は別の方法が必要です。

関連する関数

  • array_rand:配列からランダムに一つまたは複数の要素のキーを取得します
  • sort:配列を昇順に整列します
  • rsort:配列を降順に整列します
  • array_slice:配列の一部分を取得します

まとめ

shuffle はPHPで配列を簡単にランダムに並び替えたい時に非常に便利な関数です。引数として配列を渡すだけで元の配列を直接並び替え、直感的に使えます。ただし連想配列の場合はキーが失われるため注意が必要です。ゲームの抽選やリストをランダムに表示したい時など幅広く活用できます。ぜひ実務でも積極的に利用してみてください。