详解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 相关文章推荐
Extended CHM PHP 语法手册之 DIY
Oct 09 PHP
php桌面中心(四) 数据显示
Mar 11 PHP
php下用GD生成生成缩略图的两个选择和区别
Apr 17 PHP
防止用户利用PHP代码DOS造成用光网络带宽
Mar 01 PHP
php设计模式 Composite (组合模式)
Jun 26 PHP
js限制checkbox勾选的个数以及php获取多个checkbbox的方法深入解析
Jul 18 PHP
php+highchats生成动态统计图
May 21 PHP
php导出csv格式数据并将数字转换成文本的思路以及代码分享
Jun 05 PHP
迪菲-赫尔曼密钥交换(Diffie?Hellman)算法原理和PHP实现版
May 12 PHP
ThinkPHP框架表单验证操作方法
Jul 19 PHP
thinkphp5使用无限极分类
Feb 18 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
Dec 30 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解析url并得到url中的参数及获取url参数的四种方式
2015/10/26 PHP
PHP获取网页所有连接的方法(附demo源码下载)
2016/03/30 PHP
PHP自定义函数实现assign()数组分配到模板及extract()变量分配到模板功能示例
2018/05/23 PHP
php微信公众号开发之欢迎老朋友
2018/10/20 PHP
跟着JQuery API学Jquery 之三 筛选
2010/04/09 Javascript
JavaScript学习点滴 call、apply的区别
2010/10/22 Javascript
用js实现trim()的解决办法
2013/04/16 Javascript
使用Grunt.js管理你项目的应用说明
2013/04/24 Javascript
Javascript浅谈之引用类型
2013/12/18 Javascript
jquery实现类似淘宝星星评分功能有截图
2014/09/15 Javascript
JavaScript基本的输出和嵌入式写法教程
2015/10/20 Javascript
Bootstrap每天必学之附加导航(Affix)插件
2016/04/25 Javascript
node.js实现微信JS-API封装接口的示例代码
2017/09/06 Javascript
js校验开始时间和结束时间
2020/05/26 Javascript
[59:08]DOTA2上海特级锦标赛C组小组赛#2 LGD VS Newbee第一局
2016/02/27 DOTA
[00:52]黑暗之门更新 新英雄孽主驾临DOTA2
2016/08/24 DOTA
如何在python中使用selenium的示例
2017/12/26 Python
windows下安装Python的XlsxWriter模块方法
2018/05/03 Python
python实现linux下抓包并存库功能
2018/07/18 Python
django项目搭建与Session使用详解
2018/10/10 Python
Python django搭建layui提交表单,表格,图标的实例
2019/11/18 Python
Python实现RabbitMQ6种消息模型的示例代码
2020/03/30 Python
20行Python代码实现视频字符化功能
2020/04/13 Python
Pycharm操作Git及GitHub的步骤详解
2020/10/27 Python
草莓网美国官网:Strawberrynet USA
2016/12/11 全球购物
国外最大的眼镜网站:Coastal
2017/08/09 全球购物
Speedo澳大利亚官网:全球领先游泳品牌
2018/02/04 全球购物
OSPREY LONDON官网:英国本土皮具品牌
2019/05/31 全球购物
创业计划书如何吸引他人眼球
2014/01/10 职场文书
幼儿园大班毕业感言
2014/02/06 职场文书
区优秀教师事迹材料
2014/02/10 职场文书
公司贷款承诺书
2014/05/30 职场文书
民事代理词范文
2015/05/25 职场文书
Nginx防盗链与服务优化配置的全过程
2022/01/18 Servers
JVM的类加载器和双亲委派模式你了解吗
2022/03/13 Java/Android
室外天线与收音机天线杆接合方法
2022/04/05 无线电