1. 程式人生 > >PHP 生成一定數量的不重複隨機數

PHP 生成一定數量的不重複隨機數

將隨機數存入陣列,再在陣列中去除重複的值,即可生成一定數量的不重複隨機數。


function unique_rand($min, $max, $num) {
$count = 0;
$return = array();
while ($count < $num) {
$return[] = mt_rand($min, $max);
$return = array_flip(array_flip($return));
$count = count($return);
}
return $return;
}

生成隨機數時用了 mt_rand() 函式。這個函式生成隨機數的平均速度要比 rand() 快四倍。

去除陣列中的重複值時用了“翻翻法”,就是用 array_flip() 把陣列的 key 和 value 交換兩次。這種做法比用 array_unique() 快得多。