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


Posted in PHP onNovember 19, 2014

无论是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提供非常丰富的数组函数,产生随机数大多可以从数组这个角度出发,当然如果你有更好的方法,也请告之,本文也算是抛砖引玉了。

PHP 相关文章推荐
phpmyadmin中配置文件现在需要绝密的短语密码的解决方法
Feb 11 PHP
关于Intype一些小问题的解决办法
Mar 28 PHP
PHP去除数组中重复的元素并按键名排序函数
Aug 18 PHP
PHP写MySQL数据 实现代码
Jun 15 PHP
php字符编码转换之gb2312转为utf8
Oct 28 PHP
php上传文件中文文件名乱码的解决方法
Nov 01 PHP
codeigniter中实现一次性加载多个view的方法
Mar 20 PHP
基础的WordPress插件制作教程
Nov 24 PHP
php使用curl通过代理获取数据的实现方法
May 16 PHP
Centos 6.5下PHP 5.3安装ffmpeg扩展的步骤详解
Mar 02 PHP
Laravel学习教程之IOC容器的介绍与用例
Aug 15 PHP
Laravel学习教程之model validation的使用示例
Oct 23 PHP
PHP字符串比较函数strcmp()和strcasecmp()使用总结
Nov 19 #PHP
php中time()与$_SERVER[REQUEST_TIME]用法区别
Nov 19 #PHP
PHP中使用数组指针函数操作数组示例
Nov 19 #PHP
PHP循环遍历数组的3种方法list()、each()和while总结
Nov 19 #PHP
PHP分页类集锦
Nov 18 #PHP
php去除数组中重复数据
Nov 18 #PHP
php中获取主机名、协议及IP地址的方法
Nov 18 #PHP
You might like
盘点被央视点名过的日本动画电影 一部比一部强
2020/03/08 日漫
基于PHP选项与信息函数的使用详解
2013/05/10 PHP
PHP和Mysql中转UTF8编码问题汇总
2015/10/10 PHP
PHP7标量类型declare用法实例分析
2016/09/26 PHP
PHP中大括号'{}'用法实例总结
2017/02/08 PHP
Jquery阻止事件冒泡 event.stopPropagation
2011/12/11 Javascript
JS完成代码前最好对其做5件事
2013/04/07 Javascript
Jquery方式获取iframe页面中的 Dom元素
2014/05/07 Javascript
基于jquery实现的图片在各种分辨率下未知的容器内上下左右居中
2014/05/11 Javascript
浅谈JavaScript字符集
2014/05/22 Javascript
jQuery制作简单柱状图实例
2015/01/28 Javascript
Jquery实现仿腾讯娱乐频道焦点图(幻灯片)特效
2015/03/06 Javascript
JavaScript性能优化之小知识总结
2015/11/20 Javascript
vue.js指令v-for使用及索引获取
2016/11/03 Javascript
捕获未处理的Promise错误方法
2017/10/13 Javascript
Vue项目报错:Uncaught SyntaxError: Unexpected token
2018/11/10 Javascript
vue项目移动端实现ip输入框问题
2019/03/19 Javascript
python通过colorama模块在控制台输出彩色文字的方法
2015/03/19 Python
Python中遇到的小问题及解决方法汇总
2017/01/11 Python
Python学生信息管理系统修改版
2018/03/13 Python
如何使用Python实现自动化水军评论
2019/06/26 Python
python Pandas如何对数据集随机抽样
2019/07/29 Python
详解python中*号的用法
2019/10/21 Python
使用批处理脚本自动生成并上传NuGet包(操作方法)
2019/11/19 Python
Python 使用threading+Queue实现线程池示例
2019/12/21 Python
python中的split()函数和os.path.split()函数使用详解
2019/12/21 Python
Pytorch实现基于CharRNN的文本分类与生成示例
2020/01/08 Python
Python实现点云投影到平面显示
2020/01/18 Python
一个入门级python爬虫教程详解
2021/01/27 Python
Penhaligon’s英国官网:成立于1870年的英国香水制造商
2021/02/18 全球购物
记帐员岗位责任制
2014/02/08 职场文书
干部四风问题整改措施思想汇报
2014/10/13 职场文书
同学会邀请函模板
2015/01/30 职场文书
观看安全警示教育片心得体会
2016/01/15 职场文书
Ajax常用封装库——Axios的使用
2021/05/08 Javascript
Django中celery的使用项目实例
2022/07/07 Python