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 相关文章推荐
require(),include(),require_once()和include_once()的异同
Jan 02 PHP
彻底杜绝PHP的session cookie错误
Aug 09 PHP
PHP中的string类型使用说明
Jul 27 PHP
php下统计用户在线时间的一种尝试
Aug 26 PHP
php数据结构与算法(PHP描述) 快速排序 quick sort
Jun 21 PHP
PHP5函数小全(分享)
Jun 06 PHP
ThinkPHP3.1新特性之内容解析输出详解
Jun 19 PHP
php之Smarty模板使用方法示例详解
Jul 08 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
Jun 13 PHP
浅谈PHPANALYSIS提取关键字
Mar 08 PHP
浅析PHP中json_encode与json_decode的区别
Jul 15 PHP
阿里云服务器搭建Php+Apache运行环境的详细过程
May 15 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
CodeIgniter读写分离实现方法详解
2016/01/20 PHP
ThinkPHP项目分组配置方法分析
2016/03/23 PHP
PHP如何通过带尾指针的链表实现'队列'
2020/10/22 PHP
javascript 获取函数形参个数
2014/07/31 Javascript
基于jquery实现的可编辑下拉框实现代码
2014/08/02 Javascript
基于JavaScript操作DOM常用的API小结
2015/12/01 Javascript
一览画面点击复选框后获取多个id值的方法
2016/05/30 Javascript
jQuery ajaxSubmit 实现ajax提交表单局部刷新
2016/07/04 Javascript
Javascript基于jQuery UI实现选中区域拖拽效果
2016/11/25 Javascript
利用nodejs监控文件变化并使用sftp上传到服务器
2017/02/18 NodeJs
用node和express连接mysql实现登录注册的实现代码
2017/07/05 Javascript
微信小程序开发教程之增加mixin扩展
2017/08/09 Javascript
微信小程序实现手势图案锁屏功能
2018/01/30 Javascript
详解在React.js中使用PureComponent的重要性和使用方式
2018/07/10 Javascript
vue使用ajax获取后台数据进行显示的示例
2018/08/09 Javascript
对angular 实时更新模板视图的方法$apply详解
2018/10/09 Javascript
微信小程序实现单个卡片左滑显示按钮并防止上下滑动干扰功能
2019/12/06 Javascript
微信域名检测接口调用演示步骤(含PHP、Python)
2019/12/08 Javascript
JavaScript运行机制实例分析
2020/04/11 Javascript
[51:00]Secret vs VGJ.S 2018国际邀请赛淘汰赛BO3 第一场 8.24
2018/08/25 DOTA
Python实现从URL地址提取文件名的方法
2015/05/15 Python
CentOS安装pillow报错的解决方法
2016/01/27 Python
pytorch 图像预处理之减去均值,除以方差的实例
2020/01/02 Python
tensorflow mnist 数据加载实现并画图效果
2020/02/05 Python
python3:excel操作之读取数据并返回字典 + 写入的案例
2020/09/01 Python
详解python百行有效代码实现汉诺塔小游戏(简约版)
2020/10/30 Python
三星新西兰官网:Samsung新西兰
2019/03/05 全球购物
期末自我鉴定
2014/01/23 职场文书
2014年基层党组织公开承诺书
2014/03/29 职场文书
公司节能减排倡议书
2014/05/14 职场文书
新农村建设标语
2014/06/24 职场文书
食品委托检验协议书范本
2014/09/12 职场文书
单身申明具结书
2015/02/26 职场文书
2015年环卫工作总结
2015/04/28 职场文书
2015年财务经理工作总结
2015/05/13 职场文书
小学三年级作文之写景
2019/11/05 职场文书