[PHP]快速生成一个不重复的随机数组的自定义函数

流氓凡 PHP程序源码 2019-08-27 3.99 K 0

注意关键字:快速、高效,这就需要在去重复值的时候不能使用array_unique()的函数,因为效率低。

/**
*    生成一定数量的随机数组
*    array    array_rands(int $max,int $min,int $num)
*    参数1:随机数范围最大值
*    参数2:随机数范围最小值
*    参数3:数量
*/

function array_rands($max,$min,$num=2){
    $count=0;
    $arr=array();
    while($count<$num){
        $arr[]=mt_rand($min,$max);
        //利用翻翻法去重,比array_unique高效很多
        $arr=array_flip(array_flip($arr));
        //结束条件
        $count=count($arr);
    }
    //随机打乱数组并重新赋键
    shuffle($arr);
    return $arr;
}


评论