php取随机数一般都是取一个,如果同时取多个不同的随机数该如何做呢?下面就说说php中同时取多个不同随机数的方法。

php同时取多个不同的随机数的方法

例1:

php利用打乱数组的方法来取多个不同的随机数!

$num = range(0,100); //生成1到100的数组
shuffle($num); //随机打乱数组
//取前数组的前十个元素
for ($i=0; $i < 10; $i++) {
    echo $num[$i]."&nbsp";
}

例2:

网上找到的代码,写的比较繁琐,可以参考一下。

php代码:

/**
 * # 取多个不同的随机数
 * @param int $min 范围最小值
 * @param int $max 范围最大值
 * @param int $num 取随机数的个数
 * 
 * @return array 包含随机的数组
 */
function unique_rands($min, $max, $num) 
{
    $count = 0; 
    $arr = array();
    while ($count < $num) {
        $arr[] = mt_rand($min, $max);
        $arr = array_flip(array_flip($arr));
        $count = count($arr);
    }
    shuffle($arr);
    return $arr;
}

函数调用:

$arr = unique_rands(1, 1000, 100);
foreach ($arr as $key => $a) {
    echo $a.'&nbsp;&nbsp;';
}