详解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程序效率优化的一些策略小结
Jul 17 PHP
fleaphp crud操作之findByField函数的使用方法
Apr 23 PHP
php读取csv文件后,uft8 bom导致在页面上显示出现问题的解决方法
Aug 10 PHP
php url路由入门实例
Apr 23 PHP
非常好用的Zend Framework分页类
Jun 25 PHP
Redis使用Eval多个键值自增的操作实例
Nov 04 PHP
Yii2 中实现单点登录的方法
Mar 09 PHP
yii2的restful api路由实例详解
May 14 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
Dec 18 PHP
thinkphp框架表单数组实现图片批量上传功能示例
Apr 04 PHP
解决PHP Opcache 缓存刷新、代码重载出现无法更新代码的问题
Aug 24 PHP
windows系统php环境安装swoole具体步骤
Mar 04 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中str_replace函数使用小结
2008/10/11 PHP
php数据库备份还原类分享
2014/03/20 PHP
PHP屏蔽过滤指定关键字的方法
2014/11/03 PHP
PHP循环遍历数组的3种方法list()、each()和while总结
2014/11/19 PHP
php生成curl命令行的方法
2015/12/14 PHP
php远程请求CURL实例教程(爬虫、保存登录状态)
2020/12/10 PHP
javascript事件模型代码
2007/07/01 Javascript
JavaScript 闭包深入理解(closure)
2009/05/27 Javascript
点击下载链接 弹出页面实现代码
2009/10/01 Javascript
推荐10个超棒的jQuery工具提示插件
2011/10/11 Javascript
JavaScript中消除闭包的一般方法介绍
2015/03/16 Javascript
jQuery prototype冲突的2种解决方法(附demo示例下载)
2016/01/21 Javascript
Vue.js 中的 $watch使用方法
2017/05/25 Javascript
JavaScript上传文件时不用刷新页面方法总结(推荐)
2017/08/15 Javascript
详解vue渲染函数render的使用
2017/12/12 Javascript
如何在vue里面优雅的解决跨域(路由冲突问题)
2019/01/20 Javascript
小程序获取当前位置加搜索附近热门小区及商区的方法
2019/04/08 Javascript
微信小程序--获取用户地理位置名称(无须用户授权)的方法
2019/04/29 Javascript
vue 中固定导航栏的实例代码
2019/11/01 Javascript
python网络编程学习笔记(四):域名系统
2014/06/09 Python
用Python进行行为驱动开发的入门教程
2015/04/23 Python
详解Python中的array数组模块相关使用
2016/07/05 Python
python使用itchat实现手机控制电脑
2018/02/22 Python
python基于递归解决背包问题详解
2019/07/03 Python
对YOLOv3模型调用时候的python接口详解
2019/08/26 Python
基于YUV 数据格式详解及python实现方式
2019/12/09 Python
医务人员自我评价
2014/01/26 职场文书
大四学生找工作的自荐信
2014/03/27 职场文书
群众路线自查报告及整改措施
2014/11/04 职场文书
个人股份转让协议书范本
2015/01/28 职场文书
2015年材料员工作总结
2015/04/30 职场文书
2015年干部教育培训工作总结
2015/05/15 职场文书
公司借条范本
2015/05/25 职场文书
《鸟的天堂》教学反思
2016/02/19 职场文书
《雪域豹影》读后感:父爱的伟大
2019/12/23 职场文书
Nest.js参数校验和自定义返回数据格式详解
2021/03/29 Javascript