rand関数を使ってランダムにテキストを表示

rand関数を使ってランダムにテキストを表示

php

見に来たときに毎回違うテキストが表示されることってありますよね。今回はそれをちょいちょいっと作ってみようと思います。
PHPはそういうのに適した関数が用意されてますので楽チンです。と言ってもほとんどのプログラミング言語にありますね^^;なのでこれは他のにも使えると思います!!

rand関数を使ってみる

rand関数とは、randomの前の部分を取ってrandなので文字通り、ランダムに数字を生成してくれます。
使い方はいたって簡単。

rand();

これだけです!!ただ表示はしてあげてくださいね。
[php]
<?php
print("更新ごとに数字が変わります:". rand() );
?>
[/php]
サンプル
更新するたびに数字が変わっていますね。これを使って次はテキストをランダムに表示させてみましょう!!

テキストをランダムに表示してみよう

ではでは、本題のテキストをランダムで表示してみようと思いますが、ここではrand関数と配列を使ってやってみようと思います。
早速コードを書いてみましょう。
[php]
<?php
$sample = array("phpはいいよねー", // 配列を用意
"jQueryもいいねぇ",
"プログラムは動くとたのしー",
"ホームページ制作の幅が広がるよ"
);
$random = rand(0, 3); // ランダム関数を0~3に設定

print("ランダム関数で取得した数字:". $random ."<br>");
print("配列番号:". $random ."<br>");
print($sample[$random] );
?>
[/php]
サンプル
こちらも上のサンプルと同様にランダムで表示はされますが、今度はテキストが切り替わってますね。
少し説明をすると、変数「$sample」に配列を代入し、ランダム関数の範囲を決め、変数「$random」に代入。そして、print関数で表示している。ざっというとこれだけですね。これで完成!!でもいいんですが、このままだと配列を増やしたり減らしたりしたときにランダム関数の数値も変えないといけないので面倒ですね。もうちょっと楽に更新できるように改良してみましょう。

もう少し改良して楽に更新できるように

ではどうすかなんですが、用は配列の数を数えてあげてランダム関数の2つ目の引数に入れてあげればOKですね。
数を数えるときはcount関数を使います。これも文字通りカウントしてくれます。
[php]
<?php
$sample = array("phpはいいよねー", // 配列を用意
"jQueryもいいねぇ",
"プログラムは動くとたのしー",
"ホームページ制作の幅が広がるよ"
);
$sampleCount = count($sample); // 配列の数をカウント
$random = rand(0, $sampleCount – 1); // ランダム関数を0~(配列の数-1)に設定

print("配列の数:". $sampleCount ."<br>");
print("ランダム関数で取得した数字:". $random ."<br>");
print("配列番号:". $random ."<br>");
print($sample[$random] );
?>
[/php]
サンプル
こうすると配列を追加・削除だけで更新できるのでメンテナンス性が良いですね。
配列の数をカウントし、rand関数の最大値設定のところに入れて-1をしています。
-1をしている理由は配列は0から始まるので、カウントした数をそのまま設定すると、1つ多い数になってしまいますので-1をしてあげることが重要です。

rand関数はいろいろなところで使えるので覚えておくと便利です^^ではっ!!

ランダムにテキストを表示するには
・表示するテキストを用意し、配列を作成
・rand関数を使う(最小値と最大値を設定してあげる)
・メンテナンス性を考慮し、count関数を使い配列をカウント
・rand関数の最大値に設定するときは「カウント数-1」をしてあげる