<?php
/*
* 测试, 产生20个不大于40不小于0的不重复的整数
*/
$arr = GenNum(20, 40 ,0);
// $arr = GenNum(20); // 随机产生20个不重复的整数
/*
* 将产生的数字从大到小排序
*/
sort($arr);
for($i = 0; $i < count($arr); $i++)
{
echo $arr[$i]."\n";
}
?><?php
/**
* 产生n个不重复整数
* @param $n 所要产生的数字个数
* @var int
* @param $max 所要产生的数字对最大值
* @var int
* @param $min 所要产生的数字最小值
* @var int
* @return array
*/
function GenNum($n, $max = '', $min = 0)
{
$i = 0;
if ($max == '')
$max = getrandmax();
/*
$numArr 数组用于保存产生的数字
*/
$numArr = array();
while($i < $n)
{
srand ((double) microtime() * 1000000);
$newNum = rand($min, $max);
/*
* 如果$newNum不在数组$numArr内
*/
if (!in_array($newNum, $numArr))
{
array_push($numArr, $newNum);
$i++;
}
}
return $numArr;
}
?>
/*
* 测试, 产生20个不大于40不小于0的不重复的整数
*/
$arr = GenNum(20, 40 ,0);
// $arr = GenNum(20); // 随机产生20个不重复的整数
/*
* 将产生的数字从大到小排序
*/
sort($arr);
for($i = 0; $i < count($arr); $i++)
{
echo $arr[$i]."\n";
}
?><?php
/**
* 产生n个不重复整数
* @param $n 所要产生的数字个数
* @var int
* @param $max 所要产生的数字对最大值
* @var int
* @param $min 所要产生的数字最小值
* @var int
* @return array
*/
function GenNum($n, $max = '', $min = 0)
{
$i = 0;
if ($max == '')
$max = getrandmax();
/*
$numArr 数组用于保存产生的数字
*/
$numArr = array();
while($i < $n)
{
srand ((double) microtime() * 1000000);
$newNum = rand($min, $max);
/*
* 如果$newNum不在数组$numArr内
*/
if (!in_array($newNum, $numArr))
{
array_push($numArr, $newNum);
$i++;
}
}
return $numArr;
}
?>
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货