函數rand(n,m)//取從n-m之間的隨機整數
假設n=1,m=20
代碼如下:
<?
$arrResult=array();
$arrResult[]=rand(1,20);
$n=1;
while($n<=4){
  $num=rand(1,20);
  if(!in_array($num,$arrResult)){
     $arrResult[]=$num;
     $n++;
  }else
     continue;
}
print_r($arrResult);
?>
隨手寫出來的,可能有bug
試一試

解决方案 »

  1.   

    把所有数放在一个数组里,用rand()函数生成随机数,做数组的索引来取数.
    取了一个数后,把被取的那个数改成一个标志数,如0,-1什么的,只要是原来要被取的数中没有的就好了.
    下次取的时候,记得判断一下是不是你设的标志,如果是,说明重复了,继续生成随机索引.否则就把这个数取出来,按上面的继续做.
      

  2.   

    <?
    fuction randompass($length=5)
    {
    $all=explode("1 2 3 4 5 6");
    for ($i=0;$i<length;$i++)
    {
    mt_srand((double)microtime()*1000000);
    $randy = mt_rand(0,6);
    $pass.=$all[$randy];
    }
    return $pass;
    }
    ?>