PHP 小技巧之(2)怎样的产生各不相同的随机数

比如:rand(1,200);  
怎样的产生各不相同的随机数呀?  
---------------------------------------------------------------  
 
<?  
$arr=array();  
while(count($arr)<10){  
           $a=rand(1,200);  
           if(!in_array($a,$arr)){  
                       $arr[]=$a;  
           }  
}  
echo  '<pre>';  
print_r($arr);  
?>  
---------------------------------------------------------------  
 
既然叫随机数,当然随机的,当然也可以相同。何谓各不相同?  
 
如果用程序控制,则不叫随机数了,1~200以后,还是要重复的。如果你是产生1~200指定个数的,可以这样写。  
 
function  checkrand($k,$randnum,$i)    //自定义函数,判断随机数是否重复  
{  
 
     for($j=0;$j<=$i;$j++)  
     {  
           if  ($randum[$i]  ==  $k)  
           {  
                       return(False);  
             }  
       }  
     return(True);  
}  
 
 
 
for  ($i=0;$i<20;$i++)    //产生20个例  
{  
       $randnum[$i]  =  0;  //初始化  
}  
 
$i  =  0;  
while  (True)  
{  
           $k  =  rand(1,200);  
 
           if    checkrand($k,$randnum,$i)                      //值不重复  
           {  
                   $i++;  
                   $randnum[$i]  =  $k;  
                   if  ($i  =  20)  
                   {  
                       exit();    //取得想要的随机个数,退出循环  
                   }  
 
             }  
 
 
}  
 
 
$randnum[]中就是满足你要的随机数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值