PHP函數:生成N個不重複的隨機數

思路:將生成的隨機數存入數組,再在數組中去除重複的值,便可生成必定數量的不重複隨機數。php

 

程序:數組

<?php
/*
* array unique_rand( int $min, int $max, int $num )
* 生成必定數量的不重複隨機數
* $min 和 $max: 指定隨機數的範圍
* $num: 指定生成數量
*/

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

補充說明:函數

  一、生成隨機數使用了mt_rand()函數,這個函數比rand()函數快4倍;blog

  二、去除數組重複值時採用了「翻翻法」,就是用array_flip()把數組的key和value交換兩次。比用array_unique()快不少。ip

相關文章
相關標籤/搜索