php如何产生不重复随机数?

AlanblogAlan 41人围观

在php项目中,不同的项目中,随机数都有其用武之地。在最近做的几个模块中,也经常需要产出不重复随机数,所以,对于PHP如何产生不重复随机数常用的5种方法进行小结一下。

方法一

$numbers = range (1,50); //shuffle 将数组顺序随即打乱 
shuffle ($numbers); //array_slice 取该数组中的某一段 
$num=6; 
$result = array_slice($numbers,0,$num); //截取数组
var_dump($result);

方法二

$numbers = range (1,20); 
srand ((float)microtime()*1000000); //本函数传入参数后,配置随机数的种子。本例加入时间的因素,以执行时的百万分之一秒当随机数种子
shuffle ($numbers); 
while (list($key, $number) = each ($numbers)) { 
echo "$number "; }

方法三

/*$bengin-$end间随机产生5个不重复的值*/
function getRand($begin=0,$end=20,$limit=5){ 
$rand_array=range($begin,$end); 
shuffle($rand_array);
return array_slice($rand_array,0,$limit);
} 
print_r(getRand());

方法四

$tmp=array(); 
while(count($tmp)<5){ 
$tmp[]=mt_rand(1,20); 
$tmp=array_unique($tmp); //去重
} 
var_dump($tmp);

方法五

$tmp = range(1,30);
print_r(array_rand($tmp,10));


转载请注明来自Alan博客,本文标题:php如何产生不重复随机数?

发布评论
生活是一场戏,主角当累了,你亦可成为观众,停下脚步,歇一歇
Top