详解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 相关文章推荐
如何删除多级目录
Oct 09 PHP
用php过滤危险html代码的函数
Jul 22 PHP
php程序之die调试法 快速解决错误
Sep 17 PHP
PHP的魔术常量__METHOD__简介
Jul 08 PHP
PHP实现数组递归转义的方法
Aug 28 PHP
php生成html文件方法总结
Dec 01 PHP
php 如何获取文件的后缀名
Jun 05 PHP
PHP模拟http请求的方法详解
Nov 09 PHP
php版微信小店API二次开发及使用示例
Nov 12 PHP
php实现的rc4加密解密类定义与用法示例
Aug 16 PHP
laravel5实现微信第三方登录功能
Dec 06 PHP
PHP的静态方法与普通方法用法实例分析
Sep 26 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数组循环操作详细介绍 附实例代码
2013/02/03 PHP
如何通过View::first使用Laravel Blade的动态模板详解
2017/09/21 PHP
用客户端js实现带省略号的分页
2013/04/27 Javascript
jQuery实现加入购物车飞入动画效果
2015/03/14 Javascript
javascript简单实现滑动菜单效果的方法
2015/07/27 Javascript
一个字符串中出现次数最多的字符 统计这个次数【实现代码】
2016/04/29 Javascript
JavaScript中函数声明与函数表达式的区别详解
2016/08/18 Javascript
js表单元素checked、radio被选中的几种方法(详解)
2016/08/22 Javascript
移动开发之自适应手机屏幕宽度
2016/11/23 Javascript
JS一个简单的注册页面实例
2017/09/05 Javascript
MUI 实现侧滑菜单及其主体部分上下滑动的方法
2018/01/25 Javascript
基于vue实现一个神奇的动态按钮效果
2019/05/15 Javascript
Vue中对iframe实现keep alive无刷新的方法
2019/07/23 Javascript
js用正则表达式筛选年月日的实例方法
2021/01/04 Javascript
python多线程编程方式分析示例详解
2013/12/06 Python
Python中字典(dict)和列表(list)的排序方法实例
2014/06/16 Python
Python 操作文件的基本方法总结
2017/08/10 Python
Python实现PS图像调整之对比度调整功能示例
2018/01/26 Python
对Python subprocess.Popen子进程管道阻塞详解
2018/10/29 Python
Python中将两个或多个list合成一个list的方法小结
2019/05/12 Python
如何使用Python实现斐波那契数列
2019/07/02 Python
python实现爬虫抓取小说功能示例【抓取金庸小说】
2019/08/09 Python
Python多线程threading join和守护线程setDeamon原理详解
2020/03/18 Python
python一些性能分析的技巧
2020/08/30 Python
在 Python 中使用 7zip 备份文件的操作
2020/12/11 Python
用HTML5中的Canvas结合公式绘制粒子运动的教程
2015/05/08 HTML / CSS
Java如何读取CLOB字段
2013/10/10 面试题
医学专业大学生求职的自我评价
2013/11/27 职场文书
毕业生就业推荐信范文
2013/12/01 职场文书
《美丽的小路》教学反思
2014/02/26 职场文书
暑假学习心得体会
2014/09/02 职场文书
党的群众路线教育实践活动整改落实情况报告
2014/10/28 职场文书
小升初自荐信范文
2015/03/05 职场文书
2016优秀大学生个人事迹材料范文
2016/03/01 职场文书
能用CSS实现的就不要麻烦JavaScript了
2021/10/05 HTML / CSS
vue整合百度地图显示指定地点信息
2022/04/06 Vue.js