21,886
社区成员
发帖
与我相关
我的任务
分享
<?php
set_time_limit(5);
class randNum
{
/**
* 获取某范围内不重复的随机值列
*
* @param integer $min 最小值
* @param integer $max 最大值
* @param integer $n 数量
* @return array -> integer 返回随机数字组成的数组
*/
public function getRandNum($min,$max,$n)
{
$returnNum = array();
$numCount = null;
settype($min,'integer');
settype($max,'integer');
settype($n,'integer');
$isBreak = false;
do
{
$returnNum[] = mt_rand($min,$max); # 推入随机数
$numCount = count($returnNum); # 计算数组单元数目
if ($numCount == $n)
{
$returnNum = array_unique($returnNum); # 清理相同值
$numCount = count($returnNum); # 重新计算单元数目
if ($numCount == $n)
{
$isBreak = true; # 跳出
}
}
}while (!$isBreak) ;
sort($returnNum); # 排序(自然)
return $returnNum;
}
}
print_r(randNum::getRandNum(1000000,5000000,6));
?>