PHP产生不重复随机数的5个方法总结


Posted in PHP onNovember 12, 2014

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

方法一:

<?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 has encountered an Access Violation 错误的解决方法
Jan 17 PHP
PHP文章采集URL补全函数(FormatUrl)
Aug 02 PHP
php绘图之在图片上写中文和英文的方法
Jan 24 PHP
利用Fix Rss Feeds插件修复WordPress的Feed显示错误
Dec 19 PHP
详解WordPress开发中用于获取分类及子页面的函数用法
Jan 08 PHP
PHP判断FORM表单或URL参数来的数据是否为整数的方法
Mar 25 PHP
PHP单例模式是什么 php实现单例模式的方法
May 14 PHP
php 反斜杠处理函数addslashes()和stripslashes()实例详解
Dec 25 PHP
PHP字典树(Trie树)定义与实现方法示例
Oct 09 PHP
PHP让数组中有相同值的组成新的数组实例
Dec 31 PHP
PHP常用字符串输出方法分析(echo,print,printf及sprintf)
Mar 09 PHP
浅谈PHP7中的一些小技巧
May 29 PHP
php一行代码获取文件后缀名实例分析
Nov 12 #PHP
php中cookie实现二级域名可访问操作的方法
Nov 11 #PHP
php实现的css文件背景图片下载器代码
Nov 11 #PHP
PHP获取数组中重复最多的元素的实现方法
Nov 11 #PHP
利用PHP函数计算中英文字符串长度的方法
Nov 11 #PHP
php下foreach提示Warning:Invalid argument supplied for foreach()的解决方法
Nov 11 #PHP
PHP基于imap获取邮件实例
Nov 11 #PHP
You might like
实用函数5
2007/11/08 PHP
php getimagesize 上传图片的长度和宽度检测代码
2010/05/15 PHP
PHP+jquery实时显示网站在线人数的方法
2015/01/04 PHP
php中实现可以返回多个值的函数实例
2015/03/21 PHP
php自定义类fsocket模拟post或get请求的方法
2015/07/31 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
2017/08/28 PHP
php gethostbyname获取域名ip地址函数详解
2010/01/24 Javascript
jquery validation插件表单验证的一个例子
2010/03/03 Javascript
jQuery实现的立体文字渐变效果
2010/05/17 Javascript
JavaScript对内存分配及管理机制详细解析
2013/11/11 Javascript
比较不错的JS/JQuery显示或隐藏文本的方法
2014/02/13 Javascript
js控制文本框只能输入中文、英文、数字与指定特殊符号的实现代码
2016/09/09 Javascript
获取当前按钮或者html的ID名称实例(推荐)
2017/06/23 Javascript
Angular+Bootstrap+Spring Boot实现分页功能实例代码
2017/07/21 Javascript
vue-cli 自定义指令directive 添加验证滑块示例
2017/10/19 Javascript
Vue中computed与methods的区别详解
2018/03/24 Javascript
vue用ant design中table表格,点击某行时触发的事件操作
2020/10/28 Javascript
[02:42]2014DOTA2国际邀请赛 三冰专访:我会打到Ti20
2014/07/13 DOTA
Python库urllib与urllib2主要区别分析
2014/07/13 Python
Python脚本实现Web漏洞扫描工具
2016/10/25 Python
Django中自定义模型管理器(Manager)及方法
2019/09/23 Python
Python Merge函数原理及用法解析
2020/09/16 Python
web页面录屏实现
2019/02/12 HTML / CSS
GLAMGLOW格莱魅美国官网:美国知名的面膜品牌
2016/12/31 全球购物
如何用Java实现列出某个目录下的所有子目录
2015/07/20 面试题
电子商务专业实习生自我鉴定
2013/09/24 职场文书
红领巾广播站广播稿
2014/02/01 职场文书
阳光体育活动方案
2014/02/16 职场文书
环境工程专业自荐信
2014/03/03 职场文书
会计学自荐信
2014/06/03 职场文书
企业安全生产月活动总结
2014/07/05 职场文书
万里长城导游词
2015/01/30 职场文书
工作简报格式范文
2015/07/21 职场文书
医院岗前培训心得体会
2016/01/08 职场文书
python图片灰度化处理的几种方法
2021/06/23 Python
Python+DeOldify实现老照片上色功能
2022/06/21 Python