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显示MySQL数据的三种方法
Jun 05 PHP
fleaphp下不确定的多条件查询的巧妙解决方法
Sep 11 PHP
PHP中PDO的错误处理
Sep 04 PHP
PHP异步调用socket实现代码
Jan 12 PHP
php打印输出棋盘的实现方法
Dec 23 PHP
PHP对文件进行加锁、解锁实例
Jan 23 PHP
PHP文件上传问题汇总(文件大小检测、大文件上传处理)
Dec 24 PHP
PHP反射机制原理与用法详解
Feb 15 PHP
lnmp安装多版本PHP共存的方法详解
Aug 02 PHP
实现laravel 插入操作日志到数据库的方法
Oct 11 PHP
PHP实现微信提现功能(微信商城)
Nov 21 PHP
PHP设计模式之适配器模式(Adapter)原理与用法详解
Dec 12 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
php 三元运算符实例详细介绍
2016/12/15 PHP
PHP堆栈调试操作简单示例
2018/06/15 PHP
javaScript 判断字符串是否为数字的简单方法
2009/07/25 Javascript
Javascript的并行运算实现代码
2010/11/19 Javascript
jquery 如何动态添加、删除class样式方法介绍
2012/11/07 Javascript
在js中判断checkboxlist(.net控件客户端id)是否有选中
2013/04/11 Javascript
jquery实现select下拉框美化特效代码分享
2015/08/18 Javascript
基于jquery实现全屏滚动效果
2015/11/26 Javascript
AngularJS进行性能调优的7个建议
2015/12/28 Javascript
js实现滚动条滚动到某个位置便自动定位某个tr
2021/01/20 Javascript
前端程序员必须知道的高性能Javascript知识
2016/08/24 Javascript
JavaScript实现格式化字符串函数String.format
2016/12/16 Javascript
jQuery实现的监听导航滚动置顶状态功能示例
2018/07/23 jQuery
基于Electron实现桌面应用开发代码实例
2020/07/07 Javascript
TypeScript 运行时类型检查补充工具
2020/09/28 Javascript
[09:59]DOTA2-DPC中国联赛2月7日Recap集锦
2021/03/11 DOTA
使用Python进行稳定可靠的文件操作详解
2013/12/31 Python
Python获取二维矩阵每列最大值的方法
2018/04/03 Python
python3.6.3转化为win-exe文件发布的方法
2018/10/31 Python
Python3爬虫教程之利用Python实现发送天气预报邮件
2018/12/16 Python
如何在Django中设置定时任务的方法示例
2019/01/18 Python
对PyQt5中的菜单栏和工具栏实例详解
2019/06/20 Python
python实现爬虫抓取小说功能示例【抓取金庸小说】
2019/08/09 Python
wxPython实现绘图小例子
2019/11/19 Python
pytorch中图像的数据格式实例
2020/02/11 Python
Python使用QQ邮箱发送邮件实例与QQ邮箱设置详解
2020/02/18 Python
python标准库OS模块详解
2020/03/10 Python
小 200 行 Python 代码制作一个换脸程序
2020/05/12 Python
python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式
2020/05/16 Python
pycharm配置python 设置pip安装源为豆瓣源
2021/02/05 Python
利用CSS3实现文本框的清除按钮相关的一些效果
2015/06/23 HTML / CSS
开会迟到检讨书范文
2015/05/06 职场文书
违规违纪检讨书范文
2015/05/06 职场文书
工作年限证明范本
2015/06/15 职场文书
2015年团委副书记工作总结
2015/07/23 职场文书
2017年大学生寒假社会实践活动总结
2016/04/06 职场文书