如何从一个范围生成3个非重复随机数?

时间:2017-03-16 14:41:36

标签: php

使用PHP,如何从数字范围中选择3个不重复的数字?

例如,范围为1 - 100,答案可能是5,32,12,但不是5,5,93

谢谢

2 个答案:

答案 0 :(得分:3)

创建1到100之间的数字数组:

$numbers = range(1, 100);

随机播放所有数字:

shuffle($numbers);

仅检索其中的3个:

$randomNumbers = array_slice($numbers, 0, 3);

答案 1 :(得分:0)

试试这个:

$numbers = [];
$min = 1;
$max = 3;

for($i=0; $i<3; $i++){
    $rnd = rand($min, $max);
    while(in_array($rnd, $numbers)){ // while generated random number is already in the numbers array
        $rnd = rand($min, $max); // generate a new random number
    } // loop ends when newly generated random number is not in the array already
    array_push($numbers, $rnd); // push the new random number into the array
}

它会在1到3之间生成3个不同的数字,并将它们保存到$numbers数组中。