【PHP】配列にあるデータを、重複することなくランダムに複数取り出す方法

公開日:
更新日:
カテゴリー: PHP

WordPressの記事下に20個くらいの外部記事へのタイトルリンクをランダムで5つ表示させたかったのでそのプログラムを書いてみました。

ここではその備忘録を取っておきたいと思います。

データを配列に格納

まず表示させたいタイトルリンクをすべて配列に格納します。

配列をシャッフルする

最初は配列にあるデータ数までの整数をランダムに生成していき複数のデータを取り出す方法を考えましたが、重複が発生するのでこの方法は却下しました。

そして配列をシャッフルして上から順番に取り出す方法を採用しました。

配列のデータをシャッフルする関数

配列のデータをシャッフルする関数に「shuffle」があります。

shuffle(ここに配列の変数)

シャッフルに成功した場合はTrueを、失敗した場合はFalseを返します。

シャッフル後のデータをループで複数取り出す

シャッフルすればデータの並び順はランダムになっていますので、後は指定件数分ループで取り出すだけです。

プログラム

かなり雑ですが、上記のことをプログラムするとこのようになると思います。

<?php
//リンクを配列に格納
$link_array = array(
			'ここにリンク',
			'ここにリンク',
			・・・
			'ここにリンク'
		);
//配列のデータをシャッフル
shuffle($link_array);
//ループで指定件数分取り出す(「5」では5件取り出す)
for($i=0; $i<5; $i++){
	echo $link_array[$i];
}
?>

 

あわせて読んでほしい!

 

コメント

まだコメントはありません。

コメントフォーム
お名前
コメント