详解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 相关文章推荐
Win2000+Apache+MySql+PHP4+PERL安装使用小结
Oct 09 PHP
Windows下IIS6/Apache2.2.4+MySQL5.2+PHP5.2.1安装配置方法
May 03 PHP
php流量统计功能的实现代码
Sep 29 PHP
php计算几分钟前、几小时前、几天前的几个函数、类分享
Apr 09 PHP
微信支付开发教程(一)微信支付URL配置
May 28 PHP
PHP+jquery实时显示网站在线人数的方法
Jan 04 PHP
PHP传参之传值与传址的区别
Apr 24 PHP
php eval函数一句话木马代码
May 21 PHP
centos下file_put_contents()无法写入文件的原因及解决方法
Apr 01 PHP
php实现头像上传预览功能
Apr 27 PHP
thinkPHP实现的联动菜单功能详解
May 05 PHP
详解PHP服务器如何在有限的资源里最大提升并发能力
May 25 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循环检测目录是否存在并创建(循环创建目录)
2011/01/06 PHP
php中数据库连接方式pdo和mysqli对比分析
2015/02/25 PHP
利用PHP计算有多少小于当前数字的数字方法示例
2020/08/26 PHP
php如何实现数据库的备份和恢复
2020/11/30 PHP
Javascript string 扩展库代码
2010/04/09 Javascript
jqGrid表格应用之新增与删除数据附源码下载
2015/12/02 Javascript
JavaScript jquery及AJAX小结
2016/01/24 Javascript
探讨:JavaScript ECAMScript5 新特性之get/set访问器
2016/05/05 Javascript
js获取页面引用的css样式表中的属性值方法(推荐)
2016/08/19 Javascript
node.js报错:Cannot find module 'ejs'的解决办法
2016/12/14 Javascript
微信小程序 实战程序简易新闻的制作
2017/01/09 Javascript
bootstrap折叠调用collapse()后data-parent不生效的快速解决办法
2017/02/23 Javascript
基于vue.js实现侧边菜单栏
2017/03/20 Javascript
利用types增强vscode中js代码提示功能详解
2017/07/07 Javascript
JavaScript 值类型和引用类型的初次研究(推荐)
2017/07/19 Javascript
vue router 配置路由的方法
2018/07/26 Javascript
vue 录制视频并压缩视频文件的方法
2018/07/27 Javascript
vue组件挂载到全局方法的示例代码
2018/08/02 Javascript
vue调试工具vue-devtools安装及使用方法
2018/11/07 Javascript
python获取外网IP并发邮件的实现方法
2017/10/01 Python
Python简单生成随机姓名的方法示例
2017/12/27 Python
python 读取文本文件的行数据,文件.splitlines()的方法
2018/07/12 Python
python中struct模块之字节型数据的处理方法
2019/08/27 Python
Python使用urllib模块对URL网址中的中文编码与解码实例详解
2020/02/18 Python
Python分析最近大火的网剧《隐秘的角落》
2020/07/02 Python
使用PyCharm官方中文语言包汉化PyCharm
2020/11/18 Python
澳大利亚墨水站Ink Station:墨水和碳粉打印机墨盒
2019/03/24 全球购物
幼儿园英语教学反思
2014/01/30 职场文书
企业管理毕业生求职信
2014/03/11 职场文书
小学生植树节活动总结
2014/07/04 职场文书
乡镇党员干部四风对照检查材料思想汇报
2014/09/27 职场文书
一年级小学生评语大全
2014/12/25 职场文书
大学生心理健康活动总结
2015/05/08 职场文书
农业项目合作意向书
2015/05/08 职场文书
怎样写好演讲稿题目?
2019/08/21 职场文书
Golang bufio详细讲解
2022/04/21 Golang