详解PHP中array_rand函数的使用方法


Posted in PHP onSeptember 11, 2016

前言

array_rand() 函数从数组中随机选出一个或多个元素,并返回。从一个数组中随机取出n个值,用array_rand()可以轻易的实现,当面对大数组的时候,我们会担心他的效率、性能问题。

我测试了一下,当在一个大小为一万的数组中随机取出20个值,即array_rand($arr, 20)的时候,程序只花费了0.005s左右,效率非常高。平时基本上都不会遇到这么大的数组吧,所以我们不必担心array_rand效率问题了。

同时,我用了另外一种用随机数的方法。

$arr = array(1,2,3,4,5...9999); 
for($i=0; $i<20; $i++) 
{ 
 $rands = mt_rand(0,9999); 
 $aa[] = $arr[$rands]; 
}

运行程序,也只需要大概0.005s左右。

实例、随机数组

function make_password( $length = 8 ) 
{ 
 // 密码字符集,可任意添加你需要的字符 
 $chars = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 
 'i', 'j', 'k', 'l','m', 'n', 'o', 'p', 'q', 'r', 's', 
 't', 'u', 'v', 'w', 'x', 'y','z', 'A', 'B', 'C', 'D', 
 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L','M', 'N', 'O', 
 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y','Z', 
 '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '!', 
 '@','#', '$', '%', '^', '&', '*', '(', ')', '-', '_', 
 '[', ']', '{', '}', '<', '>', '~', '`', '+', '=', ',', 
 '.', ';', ':', '/', '?', '|'); 
 // 在 $chars 中随机取 $length 个数组元素键名 
 $keys = array_rand($chars, $length); 
 $password = ''; 
 for($i = 0; $i < $length; $i++) 
 { //phpfensi.com 
  // 将 $length 个数组元素连接成字符串 
  $password .= $chars[$keys[$i]]; 
 } 
 return $password; 
}

我猜想,array_rand底层的算法可能就是以上这种方法做出来的。所以取数组中随机值,放心大胆的用array_rand吧。

总结

以上就是这篇文章的全部内容,希望对大家的学习或工作带来一定的帮助。

PHP 相关文章推荐
php提示Call-time pass-by-reference has been deprecated in的解决方法[已测]
May 06 PHP
PHP编程函数安全篇
Jan 08 PHP
PHP 处理TXT文件(打开/关闭/检查/读取)
May 13 PHP
如何使用php绘制在图片上的正余弦曲线
Jun 08 PHP
php 模拟POST提交的2种方法详解
Jun 17 PHP
PHP取整函数:ceil,floor,round,intval的区别详细解析
Aug 31 PHP
PHP简单实现“相关文章推荐”功能的方法
Jul 19 PHP
PHP使用Session遇到的一个Permission denied Notice解决办法
Jul 30 PHP
yii,CI,yaf框架+smarty模板使用方法
Dec 29 PHP
php获取指定数量随机字符串的方法
Feb 06 PHP
php传值方式和ajax的验证功能
Mar 27 PHP
PHP使用preg_split和explode分割textarea存放内容的方法分析
Jul 03 PHP
PHP入门教程之上传文件实例详解
Sep 11 #PHP
PHP入门教程之会话控制技巧(cookie与session)
Sep 11 #PHP
PHP入门教程之表单与验证实例详解
Sep 11 #PHP
PHP入门教程之日期与时间操作技巧总结(格式化,验证,获取,转换,计算等)
Sep 11 #PHP
PHP入门教程之正则表达式基本用法实例详解(正则匹配,搜索,分割等)
Sep 11 #PHP
PHP入门教程之字符串处理技巧总结(转换,过滤,解析,查找,截取,替换等)
Sep 11 #PHP
PHP入门教程之自定义函数用法详解(创建,调用,变量,参数,返回值等)
Sep 11 #PHP
You might like
Phpbean路由转发的php代码
2008/01/10 PHP
php提示Failed to write session data错误的解决方法
2014/12/17 PHP
浅谈thinkphp的实例化模型
2015/01/04 PHP
php 生成Tab键或逗号分隔的CSV
2016/09/24 PHP
ASP.NET jQuery 实例14 在ASP.NET form中校验时间范围
2012/02/03 Javascript
jquery更换文章内容与改变字体大小代码
2013/09/30 Javascript
jquery文本框中的事件应用以输入邮箱为例
2014/05/06 Javascript
jQuery打印指定区域Html页面并自动分页
2014/07/04 Javascript
jquery.validate使用时遇到的问题
2015/05/25 Javascript
JavaScript数组对象赋值用法实例
2015/08/04 Javascript
详解JavaScript的流程控制语句
2015/11/30 Javascript
Js获取图片原始宽高的实现代码
2016/05/17 Javascript
jQuery的实例及必知重要的jQuery选择器详解
2016/05/20 Javascript
js实现目录链接,内容跟着目录滚动显示的简单实例
2016/10/15 Javascript
快速掌握jQuery插件WebUploader文件上传
2016/11/07 Javascript
详解vue.js+UEditor集成 [前后端分离项目]
2017/07/07 Javascript
JS获取当前地理位置的方法
2017/10/25 Javascript
Vue自定义指令结合阿里云OSS优化图片的实现方法
2019/11/12 Javascript
JavaScript适配器模式原理与用法实例详解
2020/03/09 Javascript
Python中你应该知道的一些内置函数
2017/03/31 Python
Python网络编程使用select实现socket全双工异步通信功能示例
2018/04/09 Python
浅析python 中大括号中括号小括号的区分
2019/07/29 Python
Python3+Requests+Excel完整接口自动化测试框架的实现
2019/10/11 Python
解决python Jupyter不能导入外部包问题
2020/04/15 Python
python3读取autocad图形文件.py实例
2020/06/05 Python
英国珠宝网站Argento: PANDORA、Olivia Burton和Nomination等
2020/05/08 全球购物
普天C++笔试题
2016/03/20 面试题
室内设计自我鉴定
2013/10/15 职场文书
函授生自我鉴定
2014/03/25 职场文书
教师批评与自我批评发言稿
2014/10/15 职场文书
2014年学校食堂工作总结
2014/11/25 职场文书
2016高校自主招生自荐信范文
2016/01/28 职场文书
2019终止劳动合同协议书最新范本!
2019/07/09 职场文书
Mysql中有关Datetime和Timestamp的使用总结
2021/12/06 MySQL
Python+Matplotlib+LaTeX玩转数学公式
2022/02/24 Python
利用JuiceFS使MySQL 备份验证性能提升 10 倍
2022/03/17 MySQL