[PHP] 特定の範囲の整数から指定した数だけ重複のない乱数を生成する

1から100までの整数から30の乱数を取得

<?php

/* 設定項目
------------------------------------*/
$min = 1;
$max = 100;
$total = 30;

/* 初期化
------------------------------------*/
$random = '';
$randoms = array();

// 乱数ジェネレータを初期化
mt_srand(microtime() * 100000);

for ($i=1;$i<=$total;$i++) {
    $random = mt_rand($min, $max);
    
    // 重複がある場合、再度、処理をやり直し乱数を生成
    if (in_array($random, $randoms)) {
        $i--;
        continue;
    }
    // 乱数を配列に格納
    $randoms[$i] = $random;
}

/* 結果を出力
------------------------------------*/
echo '<pre>';
print_r($randoms);
echo '</pre>';
HatenaGoogle BookmarksYahoo BookmarksFacebook

コメントする

*