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


思路:將生成的隨機數存入數組,再在數組中去除重復的值,即可生成一定數量的不重復隨機數。

 

程序:

<?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;
}

補充說明:

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

  2、去除數組重復值時采用了“翻翻法”,就是用array_flip()把數組的key和value交換兩次。比用array_unique()快很多。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM