详解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 相关文章推荐
第十二节 类的自动加载 [12]
Oct 09 PHP
PHP新手上路(八)
Oct 09 PHP
php getsiteurl()函数
Sep 05 PHP
PHP转换文件夹下所有文件编码的实现代码
Jun 06 PHP
CI框架验证码CAPTCHA辅助函数用法实例
Nov 05 PHP
php实现的简单美国商品税计算函数
Jul 13 PHP
详解Grunt插件之LiveReload实现页面自动刷新(两种方案)
Jul 31 PHP
yii用户注册表单验证实例
Dec 26 PHP
自定义min版smarty模板引擎MinSmarty.class.php文件及用法
May 20 PHP
PHP获取表单数据与HTML嵌入PHP脚本的实现
Feb 09 PHP
thinkPHP框架可添加js事件的分页类customPage.class.php完整实例
Mar 16 PHP
PHP+redis实现微博的推模型案例分析
Jul 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
PHP IF ELSE简化/三元一次式的使用
2011/08/22 PHP
php实现压缩多个CSS与JS文件的方法
2014/11/11 PHP
yii2.0整合阿里云oss上传单个文件的示例
2017/09/19 PHP
PHP实现用户登录的案例代码
2018/05/10 PHP
jquery 图片轮换效果
2010/07/29 Javascript
正负小数点后两位浮点数实现原理及代码
2013/09/06 Javascript
jquery更换文章内容与改变字体大小代码
2013/09/30 Javascript
JavaScript 垃圾回收机制分析
2013/10/10 Javascript
JS简单实现元素复制示例附图
2013/11/19 Javascript
原生javascript获取元素样式
2014/12/31 Javascript
Javascript中的高阶函数介绍
2015/03/15 Javascript
jQuery实现可展开合拢的手风琴面板菜单
2015/09/15 Javascript
基于jQuery和CSS3制作数字时钟附源码下载(jquery篇)
2015/11/24 Javascript
DOM操作原生js 的bug,使用jQuery 可以消除的解决方法
2016/09/04 Javascript
简单模拟node.js中require的加载机制
2016/10/27 Javascript
ReactJs设置css样式的方法
2017/06/08 Javascript
JS中Attr的用法详解
2017/10/09 Javascript
[38:38]完美世界DOTA2联赛PWL S3 access vs Rebirth 第二场 12.17
2020/12/18 DOTA
Django框架中方法的访问和查找
2015/07/15 Python
快速入门python学习笔记
2017/12/06 Python
python3.6 如何将list存入txt后再读出list的方法
2019/07/02 Python
关于tf.TFRecordReader()函数的用法解析
2020/02/17 Python
Python 读取位于包中的数据文件
2020/08/07 Python
兰蔻加拿大官方网站:Lancome加拿大
2016/08/05 全球购物
Helly Hansen工作服美国官方网上商店:为最恶劣的环境
2019/09/04 全球购物
阿联酋彩妆品牌:OUD MILANO
2019/10/06 全球购物
优秀毕业生自我鉴定
2014/02/11 职场文书
安全生产知识竞赛活动总结
2014/07/07 职场文书
公司收款委托书范本
2014/09/20 职场文书
个人债务授权委托书范本
2014/10/05 职场文书
2014年学校团委工作总结
2014/12/20 职场文书
2015年底工作总结范文
2015/05/15 职场文书
新郎结婚感言
2015/07/31 职场文书
2016年小学优秀班主任事迹材料
2016/02/29 职场文书
关于Javascript闭包与应用的详解
2021/04/22 Javascript
MySQL 原理优化之Group By的优化技巧
2022/08/14 MySQL