详解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 heredoc和phpwind的模板技术使用方法小结
Mar 28 PHP
计算一段日期内的周末天数的php代码(星期六,星期日总和)
Nov 12 PHP
php实现无限级分类实现代码(递归方法)
Jan 01 PHP
php学习之数据类型之间的转换代码
May 29 PHP
一个PHP的远程图片抓取函数分享
Sep 25 PHP
单点登录 Ucenter示例分析
Oct 29 PHP
ThinkPHP使用PHPExcel实现Excel数据导入导出完整实例
Jul 22 PHP
微信公众平台开发实现2048游戏的方法
Apr 15 PHP
yii用户注册表单验证实例
Dec 26 PHP
Zend Framework教程之配置文件application.ini解析
Mar 10 PHP
php mysqli查询语句返回值类型实例分析
Jun 29 PHP
PHP制作登录异常ip检测功能的实例代码
Nov 16 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中通过ADODB库实现调用Access数据库之修正版本
2006/12/31 PHP
一步一步学习PHP(7) php 字符串相关应用
2010/03/05 PHP
探讨PHP调用时间格式的参数详解
2013/06/06 PHP
ThinkPHP实现动态包含文件的方法
2014/11/29 PHP
php使用unset()删除数组中某个单元(键)的方法
2015/02/17 PHP
php array_values 返回数组的所有值详解及实例
2016/11/12 PHP
PHP ADODB实现事务处理功能示例
2018/05/25 PHP
在Ubuntu 18.04上安装PHP 7.3 7.2和7.0的方法
2019/04/09 PHP
下拉列表选择项的选中在不同浏览器中的兼容性问题探讨
2013/09/18 Javascript
在javascript中执行任意html代码的方法示例解读
2013/12/25 Javascript
jQuery 鼠标经过(hover)事件的延时处理示例
2014/04/14 Javascript
node.js中的fs.fsync方法使用说明
2014/12/15 Javascript
jQuery检测输入的字符串包含的中英文的数量
2015/04/17 Javascript
jQuery.each使用详解
2015/07/07 Javascript
JavaScript中重名的函数与对象示例详析
2017/09/28 Javascript
Vue 进入/离开动画效果
2017/12/26 Javascript
微信小程序mpvue点击按钮获取button值的方法
2019/05/29 Javascript
详解vue 自定义组件使用v-model 及探究其中原理
2019/10/11 Javascript
Angular之jwt令牌身份验证的实现
2020/02/14 Javascript
35个Python编程小技巧
2014/04/01 Python
python获取代码运行时间的实例代码
2018/06/11 Python
docker django无法访问redis容器的解决方法
2019/08/21 Python
Python 类的魔法属性用法实例分析
2019/11/21 Python
python单例设计模式实现解析
2020/01/07 Python
python模拟实现斗地主发牌
2020/01/07 Python
python opencv 实现对图像边缘扩充
2020/01/19 Python
python实时监控logstash日志代码
2020/04/27 Python
手把手教你用纯css3实现轮播图效果实例
2017/05/04 HTML / CSS
美国嘻哈文化生活方式品牌:GLD
2018/04/15 全球购物
戴森台湾线上商城:Dyson Taiwan
2018/05/21 全球购物
如何打印出当前源文件的文件名以及源文件的当前行号
2015/04/05 面试题
Shell脚本如何向终端输出信息
2014/04/25 面试题
文明演讲稿范文
2014/05/12 职场文书
庭外和解协议书
2016/03/23 职场文书
Nginx性能优化之Gzip压缩设置详解(最大程度提高页面打开速度)
2022/02/12 Servers
python数据分析之单因素分析线性拟合及地理编码
2022/06/25 Python