首页 > 代码学习

php生成不重复的随机数

发布时间:2012-11-13 13:55:57 来源:星知苑 作者:星之宇

在PHP编程过程中经常要取多个不重复的随机数。

随机一个数可以用随机函数rand(),但是现在假如要在1-20中取5个不重复的数字,使用rand(1,20)只可以取一个数字,取5个不重复的随机数就比较麻烦了。

 

比较简单的方法是用数组来取这5个随机数。下面这3种方法多是用数组来实现的。

第一种:首先创建一个有1-20元素的数组,对数组进行随机排序,取数组前5个元素。[break]

<?php
$numbers = range (1,20); //将1到20组成一个数组 
shuffle ($numbers); //对数组进行随机排序
$result = array_slice($numbers,1,5); //取数组前5个元素
print_r($result); 
?>

第二种:首先创建一个空白数组,用循环来写入数组元素,并对数组进行删重,直到数组元素达到5个。

<?php
$tmp=array(); 
while(count($tmp)<5){ //数组元素个数小于5个
$tmp[]=rand(1,20); //随机一个1-20的数放入数组
$tmp=array_unique($tmp); //删除数组中重复的元素
} 
print_r($tmp);
?>
第三种:首先创建一个空白数组,用判断来检查有没有将要写入的元素和数组中的元素有没有重复,没有重复就写入元素,直到数组元素达到5个。
<?php   
  $tmp=array();   
  while(count($tmp)<5){   //数组元素个数小于5个
  $a=rand(1,20);   //随机一个1-20的数
  if(!in_array($a,$tmp)){   //判断数组中有没有$a相同的元素,没有就写入数组
  $tmp[]=$a;   
  }   
  }   
  print_r($tmp);   
?>
PS:我写这个主要是写代码过程中的思路,获取随机数不一定要用rand(),换种思路可能实现更简单。

相关合集

  • 免费榴莲视频让你榴莲忘返大全
免费榴莲视频让你榴莲忘返大全

简介:免费榴莲视频让你榴莲忘返大全这里就是能够让你随时释放压力的地方,直接下载不用任何的门票,完全是可以说是无门槛的,只要进去各种房间里面,就会有很多的精彩的东西让你去看大哦,给你一个最健康的生活的新鲜,要是你工作压力到的话也是可以在这里得到很好的解脱和帮助,有着各种美女让你很养眼的,也是有那种控制不住的冲动的。