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 相关文章推荐
apache+mysql+php+ssl服务器之完全安装攻略
Sep 05 PHP
分享PHP入门的学习方法
Jan 02 PHP
php Hex RGB颜色值互换的使用
May 10 PHP
PHP CLI模式下的多进程应用分析
Jun 03 PHP
php Calender(日历)代码分享
Jan 03 PHP
php统计时间和内存使用情况示例分享
Mar 13 PHP
javascript数组与php数组的地址传递及值传递用法实例
Jan 22 PHP
php使用cookie实现记住用户名和密码实现代码
Apr 27 PHP
大家在抢红包,程序员在研究红包算法
Aug 31 PHP
PHP使用第三方即时获取物流动态实例详解
Apr 27 PHP
PHP与Web页面交互操作实例分析
Jun 02 PHP
php连接mysql之mysql_connect()与mysqli_connect()的区别
Jul 19 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
一个简单的自动发送邮件系统(二)
2006/10/09 PHP
CodeIgniter采用config控制的多语言实现根据浏览器语言自动转换功能
2014/07/18 PHP
php实现无限级分类
2014/12/24 PHP
php通过获取头信息判断图片类型的方法
2015/06/26 PHP
表单项的name命名为submit、reset引起的问题
2007/12/22 Javascript
jquery入门—访问DOM对象方法
2013/01/07 Javascript
jquery选择器之基本过滤选择器详解
2014/01/27 Javascript
JavaScript动态加载样式表的方法
2015/03/21 Javascript
javascript实现点击后变换按钮显示文字的方法
2015/05/13 Javascript
JS建造者模式基本用法实例分析
2015/06/30 Javascript
angularjs自定义ng-model标签的属性
2016/01/21 Javascript
Jquery实现遮罩层的简单实例(就是弹出DIV周围都灰色不能操作)
2016/07/14 Javascript
DropDownList控件绑定数据源的三种方法
2016/12/24 Javascript
Vue实现购物车功能
2017/04/27 Javascript
jquery DataTable实现前后台动态分页
2017/06/17 jQuery
JS+HTML5 FileReader实现文件上传前本地预览功能
2020/03/27 Javascript
nodejs实现连接mongodb数据库的方法示例
2018/03/15 NodeJs
vue中的数据绑定原理的实现
2018/07/02 Javascript
前端js中的事件循环eventloop机制详解
2019/05/15 Javascript
js获取对象,数组所有属性键值(key)和对应值(value)的方法示例
2019/06/19 Javascript
Python机器学习之决策树算法
2017/12/22 Python
点球小游戏python脚本
2018/05/22 Python
python中pika模块问题的深入探究
2018/10/13 Python
用Python识别人脸,人种等各种信息
2019/07/15 Python
Python CVXOPT模块安装及使用解析
2019/08/01 Python
HTML5制作3D爱心动画教程 献给女友浪漫的礼物
2014/11/05 HTML / CSS
字中字效果的实现【html5实例】
2016/05/03 HTML / CSS
钉钉企业内部H5微应用开发详解
2020/05/12 HTML / CSS
军训鉴定表自我鉴定
2014/02/13 职场文书
法制报告会主持词
2014/04/02 职场文书
副科级后备干部考察材料
2014/05/15 职场文书
爱心捐书活动总结
2014/07/05 职场文书
个人先进材料范文
2014/12/30 职场文书
团委工作总结2015
2015/04/02 职场文书
用JS实现飞机大战小游戏
2021/06/09 Javascript
通过Python把学姐照片做成拼图游戏
2022/02/15 Python