生成范围内的唯一随机数-PHP [英] Generating UNIQUE Random Numbers within a range - PHP

查看:87
本文介绍了生成范围内的唯一随机数-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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆