视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
PHP生成不重复随机数的方法是什么
2020-11-02 17:27:44 责编:小采
文档


PHP生成不重复随机数的方法:首先将数组顺序随即打乱,然后取该数组中的某一段,代码为【$numbers = range (1,50);shuffle ($numbers);$result = array_slice($numbers..】。

PHP生成不重复随机数的方法:

无论是Web应用,还是WAP或者移动应用,随机数都有其用武之地。在最近接触的几个小项目中,我也经常需要和随机数或者随机数组打交道,所以,对于PHP如何产生不重复随机数常用的几种方法小结一下。

方法一:

代码如下:

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

方法二:

代码如下:

<?php 
$numbers = range (1,20); 
//播下随机数发生器种子,可有可无,测试后对结果没有影响
srand ((float)microtime()*1000000); 
shuffle ($numbers); 
//跳过list第一个值(保存的是索引)
while (list(, $number) = each ($numbers)) { 
  echo "$number "; 
} 
?>

方法三:

代码如下:

<?php 
function NoRand($begin=0,$end=20,$limit=5){ 
  $rand_array=range($begin,$end); 
  shuffle($rand_array);//调用现成的数组随机排列函数 
  return array_slice($rand_array,0,$limit);//截取前$limit个 
} 
print_r(NoRand()); 
?>

上述可以在1-20间随机产生5个不重复的值

方法四:

代码如下:

<?php 
$tmp=array(); 
while(count($tmp)<5){ 
  $tmp[]=mt_rand(1,20); 
  $tmp=array_unique($tmp); 
} 
print_r($tmp);
?>

方法五:

代码如下:

<?php 
$tmp = range(1,30);
print_r(array_rand($tmp,10));
?>

这个可能是比叫简单的了(ps:如果在range中指定了步长,就必须注意array_rand的第二个参数是否超出$tmp的长度)。

相关视频推荐:PHP编程从入门到精通

下载本文
显示全文
专题