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 相关文章推荐
用PHP和ACCESS写聊天室(九)
Oct 09 PHP
第十节--抽象方法和抽象类
Nov 16 PHP
初级的用php写的采集程序
Mar 16 PHP
php 删除数组元素
Jan 16 PHP
一周让你学会PHP 不错的学习资料
Feb 06 PHP
php 多关键字 高亮显示实现代码
Apr 23 PHP
destoon实现资讯信息前面调用它所属分类的方法
Jul 15 PHP
又一个PHP实现的冒泡排序算法分享
Aug 21 PHP
PHP中的traits实现代码复用使用实例
May 13 PHP
PHP实现对png图像进行缩放的方法(支持透明背景)
Jul 15 PHP
将PHP程序中返回的JSON格式数据用gzip压缩输出的方法
Mar 03 PHP
PHP实现的多进程控制demo示例
Jul 22 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
php实现递归与无限分类的方法
2015/02/16 PHP
yii去掉必填项中星号的方法
2015/12/28 PHP
PHP7 字符串处理机制修改
2021/03/09 PHP
一个无限级XML绑定跨框架菜单(For IE)
2007/01/27 Javascript
JavaScript Event学习第九章 鼠标事件
2010/02/08 Javascript
javascript 常用功能总结
2012/03/18 Javascript
关于jQuery对象数据缓存Cache原理以及jQuery.data详解
2013/04/07 Javascript
JS 各种网页尺寸判断实例方法
2013/04/18 Javascript
封装html的select标签的js操作实例
2013/07/02 Javascript
javascript读写json示例
2014/04/11 Javascript
JavaScript中关键字 in 的使用方法详解
2016/10/17 Javascript
详解如何在Vue2中实现组件props双向绑定
2017/03/29 Javascript
详解JavaScript中return的用法
2017/05/08 Javascript
js实现一个简单的MVVM框架示例
2018/01/15 Javascript
基于vue打包后字体和图片资源失效问题的解决方法
2018/03/06 Javascript
JavaScript实现短暂提示框功能
2018/04/04 Javascript
使用webpack3.0配置webpack-dev-server教程
2018/05/29 Javascript
Vue模拟数据,实现路由进入商品详情页面的示例
2018/08/31 Javascript
原生Vue 实现右键菜单组件功能
2019/12/16 Javascript
vue中axios防止多次触发终止多次请求的示例代码(防抖)
2020/02/16 Javascript
JavaScript中CreateTextFile函数
2020/08/30 Javascript
[55:02]2014 DOTA2国际邀请赛中国区预选赛 HGT VS Orenda
2014/05/21 DOTA
Python科学计算之Pandas详解
2017/01/15 Python
pandas筛选某列出现编码错误的解决方法
2018/11/07 Python
Python 面向对象部分知识点小结
2020/03/09 Python
猫咪家具:CatsPlay
2018/11/03 全球购物
Madewell澳大利亚官方网站:美国休闲服饰品牌
2019/07/18 全球购物
美国领先的宠物用品和宠物食品零售商:Petco
2020/10/28 全球购物
村干部承诺书
2014/03/28 职场文书
2014年文学毕业生自我鉴定
2014/04/23 职场文书
管理工程专业求职信
2014/08/10 职场文书
大学教师师德师风演讲稿
2014/08/22 职场文书
2014年酒店工作总结范文
2014/11/17 职场文书
电视新闻稿
2015/07/17 职场文书
《中彩那天》教学反思
2016/02/24 职场文书
超市啤酒狂欢夜策划方案范文!
2019/07/03 职场文书