php中使用in_array() foreach array_search() 查找数组是否包含时的性能对比


Posted in PHP onApril 14, 2015

判断某字符是否包含与某于数组中,方法有很多,刚学习php的新手们估计偏向于使用循环来解决,对于一般的小网站来说,这种解决方案是不会出现什么大问题的。但就性能来说,这种方法不是最好的方法,下面笔者就 foreach,in_array() array_search 这三种方法来比较这三种方法在性能表现上的差异。

<?php
$runtime= new runtime;
$runtime->start();
    $a = 'k';
    $b = array('a','b','c','d','e','f','g','h','i','j','k');

/*
for ($i=0; $i < 100000; $i++) {
    var_dump(in_array($a, $b));    
}
*/

/*
for ($i=0; $i < 100000; $i++) {
    foreach ($b as $key => $value) {
        if ($a == $value) {
            //echo TRUE;
            continue;
        }
    }
}
*/

/*
for ($i=0; $i < 100000; $i++) {
    array_search($a, $b);
}
*/

$runtime->stop();
echo $_b;
echo "执行时间: ".$runtime->spent()." 毫秒";

class runtime{
  var $StartTime = 0;
  var $StopTime = 0;
  function get_microtime(){
    list($usec, $sec) = explode(' ', microtime());
    return ((float)$usec + (float)$sec);
  }
  function start(){
    $this->StartTime = $this->get_microtime();
  }
  function stop(){
    $this->StopTime = $this->get_microtime();
  }
  function spent(){
    return round(($this->StopTime - $this->StartTime) * 1000, 1);
  }
}
?>

以上程序执行时间如下图所示:

in_array()

php中使用in_array() foreach array_search() 查找数组是否包含时的性能对比

foreach

php中使用in_array() foreach array_search() 查找数组是否包含时的性能对比

array_search()

php中使用in_array() foreach array_search() 查找数组是否包含时的性能对比

由上可以大致看出这三种方法在性能上的表现了吧,array_search 和 in_array 表现差不多,foreach 表现最差。

PHP 相关文章推荐
PHP 删除一个目录及目录下的所有文件的函数代码
May 26 PHP
php用数组返回无限分类的列表数据的代码
Aug 08 PHP
关于PHP内存溢出问题的解决方法
Jun 25 PHP
php常用数学函数汇总
Nov 21 PHP
Sublime里直接运行PHP配置方法
Nov 28 PHP
CodeIgniter配置之database.php用法实例分析
Jan 20 PHP
使用php实现从身份证中提取生日
May 09 PHP
CI框架源码解读之URI.php中_fetch_uri_string()函数用法分析
May 18 PHP
深入理解PHP原理之执行周期分析
Jun 01 PHP
老生常谈PHP面向对象之注册表模式
May 26 PHP
PHP设计模式之委托模式定义与用法简单示例
Aug 13 PHP
thinkphp 获取控制器及控制器方法
Apr 16 PHP
PHP也能干大事 随机函数
Apr 14 #PHP
PHP数组操作――获取数组最后一个值的方法
Apr 14 #PHP
微信公众平台之快递查询功能用法实例
Apr 14 #PHP
php生成rss类用法实例
Apr 14 #PHP
php修改上传图片尺寸的方法
Apr 14 #PHP
php动态添加url查询参数的方法
Apr 14 #PHP
php保存任意网络图片到服务器的方法
Apr 14 #PHP
You might like
外媒评选出10支2020年最受欢迎的Dota2战队
2021/03/05 DOTA
使用 MySQL Date/Time 类型
2008/03/26 PHP
php中实现进程锁与多进程的方法
2016/09/18 PHP
PHP类和对象相关系统函数与运算符小结
2016/09/28 PHP
PHP面向对象程序设计之接口的继承定义与用法详解
2018/12/20 PHP
超级强大的表单验证
2006/06/26 Javascript
JQuery 常用操作代码
2010/03/14 Javascript
用示例说明filter()与find()的用法以及children()与find()的区别分析
2013/04/26 Javascript
js 动态修改css文件用到了cssRule
2014/08/20 Javascript
Node.js实现批量去除BOM文件头
2014/12/20 Javascript
jQuery解析json数据实例分析
2015/11/24 Javascript
浅谈jQuery中ajaxPrefilter的应用
2016/08/01 Javascript
如何解决hover在ie6中的兼容性问题
2016/12/15 Javascript
微信小程序五星评分效果实现代码
2017/04/06 Javascript
封装运动框架实战左右与上下滑动的焦点轮播图(实例)
2017/10/17 Javascript
JavaScript实现快速排序的方法分析
2018/01/10 Javascript
原生JavaScript实现todolist功能
2018/03/02 Javascript
浅谈Vue初学之props的驼峰命名
2018/07/19 Javascript
React-router4路由监听的实现
2018/08/07 Javascript
结合Python的SimpleHTTPServer源码来解析socket通信
2016/06/27 Python
详解supervisor使用教程
2017/11/21 Python
Python3中内置类型bytes和str用法及byte和string之间各种编码转换 问题
2018/09/27 Python
Python 复平面绘图实例
2019/11/21 Python
python opencv如何实现图片绘制
2020/01/19 Python
解决pycharm编辑区显示yaml文件层级结构遇中文乱码问题
2020/04/27 Python
基于Python的接口自动化读写excel文件的方法
2021/01/15 Python
Spartoo瑞典:鞋子、包包和衣服
2018/09/15 全球购物
酒店总经理欢迎词
2014/01/08 职场文书
餐厅楼面部长岗位职责范文
2014/02/16 职场文书
大学生两会学习心得体会
2014/03/10 职场文书
2015年检验科工作总结
2015/04/27 职场文书
长辈生日祝福语大全(72句)
2019/08/09 职场文书
500字作文之难忘的同学
2019/12/20 职场文书
java解析XML详解
2021/07/09 Java/Android
利用python实时刷新基金估值(摸鱼小工具)
2021/09/15 Python
opencv深入浅出了解机器学习和深度学习
2022/03/17 Python