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

現在、momomoのサイトトップには「Be-Kasumi-sou」プロジェクトが展開されています。こちら、ランダムでmomomoで働いている人が切り替わるのをお気づきでしたでしょうか?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; ?>

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