さて。昨日紹介した『重複しない複数の要素をランダムに表示する方法 jQuery編』に引き続き、今日は同じ処理を PHP で実現させる方法を紹介します。

PHPで重複しないランダムな要素を表示させるには、配列をシャッフルして任意の数だけ要素を取り出す方法が使えます。

echo "<ul>";
$name =array(
	'要素1',
	'要素2',
	'要素3',
	'要素4',
	'要素5'
);
$check = array_fill(0,5,0);
$a=0;
while($a<2){
	$i = rand(0,4);
	if( $check[$i] != 1 ){
		$check[$i] = 1;
		echo "<li>". "$name[$i]" ."</li>";
		$a++;
	}
}
echo "</ul>";

上記の例では5つある要素の中から2つをランダムに表示させています。

while($a<2) の部分の数値が、表示させたい要素の数。
その下の行の rand(0,4) の部分で乱数を発生させています。この場合は要素が5つなので (0,4) としていますが、プログラム言語では最初の「1」は「0」でカウントするので、例えば要素が7つの場合は (0,6) と書き換えます。

ぜひお試しください!

参考:重複しない複数の要素をランダムに表示する方法。(jQuery編)

重複しない複数の要素をランダムに表示する方法。(PHP編):
サンプルページ