生成范围内的唯一随机数-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);
}
例:
<?phpprint_r( UniqueRandomNumbersWithinRange(0,25,5) );
?>
结果:
Array(
[0] => 14
[1] => 16
[2] => 17
[3] => 20
[4] => 1
)
以上是 生成范围内的唯一随机数-PHP 的全部内容, 来源链接: utcz.com/qa/420837.html