生成范围内的唯一随机数-PHP

我需要生成一个范围内的随机唯一数字吗?怎么做 ?

我可以通过生成随机数

generator:

$arr=array();

$x=rand($min,$max);

$len=count($arr);

$flag = 0;

for($i=0;$i<$len;$i++)

{

if ($flag == 1)

goto generator;

if ($x == $arr[$i])

$flag = 1;

}

$arr[$index] = $x;

$index++;

goto generator;

我知道这段代码不好,所以我需要一个更好的优化版本代码!帮帮我 !

例如:如果我需要在1到15之间生成3个数字,它们应该像5、9、1而不是3,1,2 [具有1-3(我要生成的数字)]

回答:

以随机顺序排列数字范围的数组:

$numbers = range(1, 20);

shuffle($numbers);

包装功能:

function UniqueRandomNumbersWithinRange($min, $max, $quantity) {

$numbers = range($min, $max);

shuffle($numbers);

return array_slice($numbers, 0, $quantity);

}

例:

<?php

print_r( UniqueRandomNumbersWithinRange(0,25,5) );

?>

结果:

 Array

(

[0] => 14

[1] => 16

[2] => 17

[3] => 20

[4] => 1

)

以上是 生成范围内的唯一随机数-PHP 的全部内容, 来源链接: utcz.com/qa/420837.html

回到顶部