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 相关文章推荐
投票管理程序
Oct 09 PHP
PHP+FLASH实现上传文件进度条相关文件 下载
Jul 21 PHP
在同一窗体中使用PHP来处理多个提交任务
May 08 PHP
php 验证码实例代码
Jun 01 PHP
如何使用“PHP” 彩蛋进行敏感信息获取
Aug 07 PHP
PHP命名空间(namespace)的动态访问及使用技巧
Aug 18 PHP
浅析PHP文件下载原理
Dec 25 PHP
php计算一个文件大小的方法
Mar 30 PHP
typecho插件编写教程(四):插件挂载
May 28 PHP
php页面,mysql数据库转utf-8乱码,utf-8编码问题总结
Aug 27 PHP
PHP大文件分片上传的实现方法
Oct 28 PHP
设定php简写功能的方法
Nov 28 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
中国的第一台收音机
2021/03/01 无线电
php join函数应用
2011/05/04 PHP
浅谈PHP中Stream(流)
2015/06/08 PHP
一个JavaScript继承的实现
2006/10/24 Javascript
另类调用flash无须激活的方法
2006/12/27 Javascript
jquery插件珍藏(图片局部放大/信息提示框)
2013/01/08 Javascript
onkeydown事件解决按回车键直接提交数据的需求
2013/04/11 Javascript
JS替换文本域内的回车示例
2014/02/18 Javascript
JQuery对表单元素的基本操作使用总结
2014/07/18 Javascript
JS实现的用来对比两个用指定分隔符分割的字符串是否相同
2014/09/19 Javascript
Node.js与Sails ~项目结构与Mvc实现及日志机制
2015/10/14 Javascript
jquery单击事件和双击事件冲突解决方案
2016/03/02 Javascript
Bootstrap按钮组件详解
2016/04/26 Javascript
微信小程序 两种滑动方式(横向滑动,竖向滑动)详细及实例代码
2017/01/13 Javascript
JS实现PC手机端和嵌入式滑动拼图验证码三种效果
2017/02/15 Javascript
vue中axios请求的封装实例代码
2019/03/23 Javascript
Python BeautifulSoup中文乱码问题的2种解决方法
2014/04/22 Python
Python创建系统目录的方法
2015/03/11 Python
基于python内置函数与匿名函数详解
2018/01/09 Python
详解Appium+Python之生成html测试报告
2019/01/04 Python
Python实现html转换为pdf报告(生成pdf报告)功能示例
2019/05/04 Python
python 统计文件中的字符串数目示例
2019/12/24 Python
keras实现多GPU或指定GPU的使用介绍
2020/06/17 Python
html5跳转小程序wx-open-launch-weapp踩坑
2020/12/02 HTML / CSS
香港礼品网站:GiftU eshop
2017/09/01 全球购物
体育纪念品、亲笔签名的体育收藏品:Steiner Sports
2020/07/31 全球购物
运动会广播稿100字
2014/01/11 职场文书
《兰亭集序》教学反思
2014/02/11 职场文书
平面设计求职信
2014/03/10 职场文书
毕业论文评语大全
2014/04/29 职场文书
食堂采购员岗位职责
2015/04/03 职场文书
贷款担保书范本
2015/09/22 职场文书
详解MySQL主从复制及读写分离
2021/05/07 MySQL
PyQt5爬取12306车票信息程序的实现
2021/05/14 Python
解决Pytorch中关于model.eval的问题
2021/05/22 Python
pandas取dataframe特定行列的实现方法
2021/05/24 Python