【PHP】自分をレアキャラ化する!

現在、イッパイアッテナのサイトトップには「Be-Kasumi-sou」プロジェクトが展開されています。こちら、ランダムでイッパイアッテナで働いている人が切り替わるのをお気づきでしたでしょうか?JSでもできる作業ですが、PHPでランダム処理しています。

こんな感じです。

// ランダムにする画像(記事)数を設定します。ランダムにしたい画像が3つなら、3です。
$cnt = 3;

// --------------------------- ここは触らない -------
// ランダムな整数を作る
$rand_cnt = rand( 1, $cnt ) * 1;
// 念の為に入力チェックを入れます。
if ( ( $rand_cnt  1 ) || ( $rand_cnt > $cnt ) ) $rand_cnt = 1;
// --------------------------- ここは触らない -------

あとは、IF文ランダムにしたいHTML部分を囲います。

<!-- 1つ目のランダム画像 -->
<?php if ( $rand_cnt == 1 ) : ?>
<div>
	<img 〜>
</div>
<?php endif; ?>

<!-- 2つ目のランダム画像 -->
<?php if ( $rand_cnt == 2 ) : ?>
<div>
	<img 〜>
</div>
<?php endif; ?>

<!-- 3つ目のランダム画像 -->
<?php if ( $rand_cnt == 3 ) : ?>
<div>
	<img 〜>
</div>
<?php endif; ?>

ランダムに切り替わる画像の完成です!
さて・・・・。ここで頭の体操です。たとえば3つ目の画像のみ、出現率を他の2つより下げたい場合、どうすればよいでしょうか?

ヒント!ここは触らないと指定してある部分は触らずにできます。
ではやってみましょう。

<?php
// ランダムにする記事(画像)数を設定します。ランダムにしたい画像が3つなら、3です。
$cnt = 7;

// --------------------------- ここは触らない -------
// ランダムな整数を作る
$rand_cnt = rand( 1, $cnt ) * 1;
// 念の為に入力チェックを入れます。
if ( ( $rand_cnt < 1 ) || ( $rand_cnt > $cnt ) ) $rand_cnt = 1;
// --------------------------- ここは触らない -------
?>

<!-- 1つ目のランダム画像 -->
<?php if ( $rand_cnt == 1 || $rand_cnt == 2 || $rand_cnt == 3 ) : ?>
<div>
	<img 〜>
</div>
<?php endif; ?>

<!-- 2つ目のランダム画像 -->
<?php if ( $rand_cnt == 4 || $rand_cnt == 5 || $rand_cnt == 6 ) : ?>
<div>
	<img 〜>
</div>
<?php endif; ?>

<!-- 3つ目のランダム画像 -->
<?php if ( $rand_cnt == 7 ) : ?>
<div>
	<img 〜>
</div>
<?php endif; ?>

以上、自分をレアキャラ化する!でした。