详解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 无限级分类学习参考之对ecshop无限级分类的解析 带详细注释
Mar 23 PHP
国产PHP开发框架myqee新手快速入门教程
Jul 14 PHP
2014年最新推荐的10款 PHP 开发框架
Aug 01 PHP
php中隐形字符65279(utf-8的BOM头)问题
Aug 16 PHP
PHP实现利用MySQL保存session的方法
Aug 23 PHP
PHP Reflection API详解
May 12 PHP
PHP简单字符串过滤方法示例
Sep 04 PHP
PHP基于MySQLI函数封装的数据库连接工具类【定义与用法】
Aug 11 PHP
基于swoole实现多人聊天室
Jun 14 PHP
PHP parse_ini_file函数的应用与扩展操作示例
Jan 07 PHP
thinkphp5.1框架中容器(Container)和门面(Facade)的实现方法分析
Aug 05 PHP
php解析非标准json、非规范json的方式实例
Dec 10 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
thinkphp3.2.2实现生成多张缩略图的方法
2014/12/19 PHP
thinkphp实现分页显示功能
2016/12/03 PHP
PHP实现批量重命名某个文件夹下所有文件的方法
2017/09/04 PHP
tbody元素支持嵌套的注意方法
2007/03/24 Javascript
js的.innerHTML = &quot;&quot;IE9下显示有错误的解决方法
2013/09/16 Javascript
nodejs教程之环境安装及运行
2014/11/21 NodeJs
深入学习JavaScript中的原型prototype
2015/08/13 Javascript
JavaScript数据类型学习笔记
2016/01/25 Javascript
JQuery的attr 与 val区别
2016/06/12 Javascript
JS传值出现中文参数乱码的解决方法
2016/06/30 Javascript
jQuery插件autocomplete使用详解
2017/02/04 Javascript
Angular 4环境准备与Angular cli创建项目详解
2017/05/27 Javascript
浅谈ajax在jquery中的请求和servlet中的响应
2018/01/22 jQuery
JS Object.preventExtensions(),Object.seal()与Object.freeze()用法实例分析
2018/08/25 Javascript
浅谈关于iview表单验证的问题
2018/09/29 Javascript
vue实现codemirror代码编辑器中的SQL代码格式化功能
2019/08/27 Javascript
深入理解javascript prototype的相关知识
2019/09/19 Javascript
Egg Vue SSR 服务端渲染数据请求与asyncData
2019/11/24 Javascript
Node.js API详解之 Error模块用法实例分析
2020/05/14 Javascript
js实现双色球效果
2020/08/02 Javascript
js实现星星海特效的示例
2020/09/28 Javascript
vue 函数调用加括号与不加括号的区别
2020/10/29 Javascript
python使用正则表达式检测密码强度源码分享
2014/06/11 Python
详细介绍Python中的偏函数
2015/04/27 Python
详解Python map函数及Python map()函数的用法
2017/11/16 Python
对Python 中矩阵或者数组相减的法则详解
2019/08/26 Python
Python 3.8 新功能来一波(大部分人都不知道)
2020/03/11 Python
html5实现完美兼容各大浏览器的播放器
2014/12/26 HTML / CSS
香港时尚女装购物网站:ZAFUL
2017/07/19 全球购物
英国最大的正宗复古足球衫制造商和零售商:TOFFS
2018/06/21 全球购物
小学生运动会报道稿
2014/09/12 职场文书
综合素质评价自我评价
2015/03/06 职场文书
Matlab求解数组中的最大值及它所在的具体位置
2021/04/16 Python
python 实现的截屏工具
2021/05/08 Python
Python实战之OpenCV实现猫脸检测
2021/06/26 Python
MongoDB连接数据库并创建数据等使用方法
2021/11/27 MongoDB