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源代码
Oct 09 PHP
在php中取得image按钮传递的name值
Oct 09 PHP
php mysql数据库操作类
Jun 04 PHP
php将数据库中的电话号码读取出来并生成图片
Aug 31 PHP
PHP 程序授权验证开发思路
Jul 09 PHP
PHP下操作Linux消息队列完成进程间通信的方法
Jul 24 PHP
PHP使用Session遇到的一个Permission denied Notice解决办法
Jul 30 PHP
php post大量数据时发现数据丢失问题解决方法
Jun 20 PHP
8个必备的PHP功能开发
Oct 02 PHP
PHP实现的方程求解示例分析
Nov 11 PHP
PHP实现的迪科斯彻(Dijkstra)最短路径算法实例
Sep 16 PHP
php远程请求CURL案例(爬虫、保存登录状态)
Apr 01 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
php日历制作代码分享
2014/01/20 PHP
php网页标题中文乱码的有效解决方法
2014/03/05 PHP
PHP获取短链接跳转后的真实地址和响应头信息的方法
2014/07/25 PHP
php实现parent调用父类的构造方法与被覆写的方法
2015/02/11 PHP
PHP数据对象映射模式实例分析
2019/03/29 PHP
JavaScript中的变量声明早于赋值分析
2012/03/01 Javascript
javascript实现tabs选项卡切换效果(自写原生js)
2013/03/19 Javascript
JS Pro-深入面向对象的程序设计之继承的详解
2013/05/07 Javascript
javascript获取重复次数最多的字符
2015/07/08 Javascript
javascript高级编程之函数表达式 递归和闭包函数
2015/11/29 Javascript
jQuery插件ImageDrawer.js实现动态绘制图片动画(附源码下载)
2016/02/25 Javascript
深入理解JQuery中的事件与动画
2016/05/18 Javascript
Javascript缓存API
2016/06/14 Javascript
Angular4.x通过路由守卫进行路由重定向实现根据条件跳转到相应的页面(推荐)
2018/05/10 Javascript
小程序自定义组件实现城市选择功能
2018/07/18 Javascript
使用Vue-cli 中为单独页面设置背景图片铺满全屏
2020/07/17 Javascript
pymongo给mongodb创建索引的简单实现方法
2015/05/06 Python
Python使用设计模式中的责任链模式与迭代器模式的示例
2016/03/02 Python
python3音乐播放器简单实现代码
2020/04/20 Python
对python读取zip压缩文件里面的csv数据实例详解
2019/02/08 Python
python文本数据处理学习笔记详解
2019/06/17 Python
python通过http下载文件的方法详解
2019/07/26 Python
python3.8 微信发送服务器监控报警消息代码实现
2019/11/05 Python
tensorflow将图片保存为tfrecord和tfrecord的读取方式
2020/02/17 Python
Python3基于print打印带颜色字符串
2020/07/06 Python
Django跨域请求原理及实现代码
2020/11/14 Python
一年级语文教学反思
2014/02/13 职场文书
幼儿园大班毕业教师寄语
2014/04/03 职场文书
大学竞选班长演讲稿
2014/04/24 职场文书
县政协领导班子群众路线教育实践活动四风问题整改方案
2014/10/26 职场文书
2014年人民调解工作总结
2014/12/08 职场文书
见义勇为事迹材料
2014/12/24 职场文书
2015年学校少先队工作总结
2015/07/20 职场文书
2019运动会广播加油稿汇总
2019/08/21 职场文书
Python手拉手教你爬取贝壳房源数据的实战教程
2021/05/21 Python
SQL Server中使用判断语句(IF ELSE/CASE WHEN )案例
2021/07/07 SQL Server