利用php脚本可以很方便的生成指定范围内单个随机数,但如果同时生成多个随机数就会出现重复概率。下面的博文就给了一种可以同时在指定范围内生成多个不重复随机数的方法。

php在指定范围内同时生成多个不重复随机数的方法

自定义一个生成的函数

/**
 * # 在指定范围内生成多个不重复的随机数
 * @host http://www.feiniaomy.com
 */
function get_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);
    }  
    shuffle($return);
    return $return;
}

函数调用:

//生成10个1到100范围内的不重复随机数
$arr = get_rand(1, 100, 10);
print_r($arr);

生成结果:

Array
(
    [0] => 90
    [1] => 30
    [2] => 94
    [3] => 64
    [4] => 42
    [5] => 67
    [6] => 57
    [7] => 32
    [8] => 46
    [9] => 39
)