生成范围内的唯一随机数-PHP [英] Generating UNIQUE Random Numbers within a range - PHP
本文介绍了生成范围内的唯一随机数-PHP的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要生成一个范围内的随机UNIQUE号码吗? 怎么办?
i need to generate random UNIQUE numbers within a range ? how to do ?
我可以通过
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;
我知道这段代码不好,所以我需要一个更好的我版本的优化代码! 帮助!
I know this code is bad, so i need a better optimized code of my version ! help !
示例: 如果我需要在1到15之间生成3个数字,它们应该像5、9、1而不是3,1,2 [1-3(我要生成的数字)]
example: if i need to generate 3 numbers within 1 to 15 they should be like 5, 9, 1 but not 3,1,2 [with in 1 - 3 (numbers i want to generate) ]
推荐答案
以随机顺序排列数字范围的数组:
Array with range of numbers at random order:
$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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文