<?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;
}
?>