无论是Web应用,还是WAP或者移动应用,随机数都有其用武之地。在最近接触的几个小项目中,我也经常需要和随机数或者随机数组打交道,所以,对于PHP如何产生不重复随机数常用的几种方法小结一下。
方法一:
代码如下: <?php
$numbers = range (,);
//shuffle 将数组顺序随即打乱
shuffle ($numbers);
//array_slice 取该数组中的某一段
$num=;
$result = array_slice($numbers,,$num);
print_r($result);
?>
方法二:
代码如下: <?php
$numbers = range (,);
//播下随机数发生器种子,可有可无,测试后对结果没有影响
srand ((float)microtime()*);
shuffle ($numbers);
//跳过list第一个值(保存的是索引)
while (list(, $number) = each ($numbers)) {
  echo "$number ";
}
?>
方法三:
代码如下: <?php
function NoRand($begin=,$end=,$limit=){
  $rand_array=range($begin,$end);
  shuffle($rand_array);//调用现成的数组随机排列函数
  return array_slice($rand_array,,$limit);//截取前$limit个
}
print_r(NoRand());
?>
上述可以在1-20间随机产生5个不重复的值
方法四:
代码如下: <?php
$tmp=array();
while(count($tmp)<){
  $tmp[]=mt_rand(,);
  $tmp=array_unique($tmp);
}
print_r($tmp);
?>
方法五:
代码如下: <?php
$tmp = range(,);
print_r(array_rand($tmp,));
?>
这个可能是比叫简单的了(ps:如果在range中指定了步长,就必须注意array_rand的第二个参数是否超出$tmp的长度)。

最新文章

  1. ACM : POJ 2676 SudoKu DFS - 数独
  2. CentOS6.5安装Eclipse
  3. ArchLinux+Win10双系统的Grub配置
  4. linux svn hooks代码自动更新至项目
  5. C++开发的基于UDP协议的聊天工具
  6. AJax中post与get请求注意事项
  7. [LintCode] Coins in a Line 一条线上的硬币
  8. PHP 中的BOM BUG
  9. 实用的透明背景mark图标
  10. JQuery 中的Ajax
  11. JS字符串拼接优化
  12. Using StructureMap DI and Generic Repository
  13. 笔记整理——linux
  14. CSS3-loading动画(五)
  15. [BZOJ]1069 最大土地面积(SCOI2007)
  16. [HNOI2016]矿区
  17. HDFS的操作SHELL和API
  18. BZOJ2729 HNOI2012排队(组合数学+高精度)
  19. 管道pipe与dup结合使用
  20. vue 组件 模板中根数据绑定需要指明路径并通信父

热门文章

  1. MySQL索引的创建、删除和查看
  2. Netbeans连接数据库
  3. VirtualBox 网络设置
  4. Socket网络编程(1)
  5. 唐巧的iOS技术博客选摘
  6. BI就是报表?
  7. xxxx is not translated in zh-rCN, zh-rTW
  8. scp 命令
  9. Reverse Pairs
  10. poj 1664