こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、12年目エンジニアです。
この記事では、 PHPで配列の要素をランダムにシャッフルするshuffle関数について
- shuffle関数とは
- shuffle関数を使うときの注意点
- shuffle関数を使ったサンプルプログラム
と、丁寧に解説していきます。
前提条件:実行環境について
実行環境は以下の通りです。
OS | Windows10 |
---|---|
PHPのバージョン | 8.0.3 |
XAMPPのバージョン | 8.0.3 |
PHPを動かすためにXAMPPを使っています。
XAMPPのインストールは、下の記事をご参考ください。
shuffle関数とは
shuffle関数とは、引数に指定された配列の要素をランダムにシャッフルし、trueを返す関数です。
使い方サンプルは下記になります。
1 2 |
$sample = ['a', 'b', 'c']; $result = shuffle($sample); |
上記の例だと変数resultには「true」が返され、変数sampleは
1 2 3 4 5 6 |
Array ( [0] => c [1] => a [2] => b ) |
や
1 2 3 4 5 6 |
Array ( [0] => a [1] => c [2] => b ) |
など、要素がシャッフルされた配列になっています。
shuffle関数を使うときの注意点
shuffle関数を使うときの注意点として、連想配列はキーが削除され新しく振り直しがされるという点です。
たとえば
1 2 3 4 5 6 |
Array ( [A] => a [B] => b [C] => c ) |
という連想配列に対して、shuffle関数を使うと
1 2 3 4 5 6 |
Array ( [0] => b [1] => c [2] => a ) |
というように実行前に指定していたキーは削除され、振り直しがされます。
連想配列に対してshuffle関数を使うときはご注意ください。
では、次の章で実際に使ってみます。
shuffle関数を解説するプログラムの概要
shuffle関数を解説するプログラムでは、
- 配列
- 連想配列
の2種類の配列を用意してshuffle関数を実行してその結果を確認します。
phpプログラムは
C:\xampp\htdocs
配下に、【shuffle_sample.php】というファイル名で格納しています。
PHPサンプルプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
<?php print('■shuffle関数サンプル<br >'); $numbers = [1, 2, 3, 4]; $fruits = [ 'apple' => 'リンゴ', 'orange' => 'オレンジ', 'grape' => 'ブドウ', 'strawberry' => 'イチゴ' ]; print('①配列の場合<br >'); print('・実行前<br >'); print_r('<pre>'); print_r($numbers); print_r('</pre>'); $result_numbers = shuffle($numbers); print('・実行後<br >'); print_r('<pre>'); print_r($numbers); print_r('</pre>'); print('返り値→'); var_export($result_numbers); print('<br >'); print('②連想配列の場合<br >'); print('・実行前<br >'); print_r('<pre>'); print_r($fruits); print_r('</pre>'); $result_fruits = shuffle($fruits); print('・実行後<br >'); print_r('<pre>'); print_r($fruits); print_r('</pre>'); print('返り値→'); var_export($result_fruits); print('<br >'); ?> |
実行結果
XAMPPを起動して、【http://localhost/shuffle_sample.php】のURLにアクセスします。
XAMPPでPHPの動かし方については、こちらの記事をご参考ください。
配列の要素がランダムにシャッフルされ、連想配列はキーも振り直しがされていることを確認できました。
まとめ:shuffle関数を使ってみよう!
以上がPHPのshuffle関数についての解説でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント