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

相关文章
相关标签/搜索