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获取谷歌PR值算法,附上php查询PR值代码示例
Dec 25 PHP
php变量范围介绍
Oct 15 PHP
PHP函数http_build_query使用详解
Aug 20 PHP
php+mysqli预处理技术实现添加、修改及删除多条数据的方法
Jan 30 PHP
php显示指定目录下子目录的方法
Mar 20 PHP
PHP输出九九乘法表代码实例
Mar 27 PHP
PHP curl使用实例
Jul 02 PHP
php验证手机号码
Nov 11 PHP
php用户密码加密算法分析【Discuz加密算法】
Oct 12 PHP
使用Codeigniter重写insert的方法(推荐)
Mar 23 PHP
php实现JWT(json web token)鉴权实例详解
Nov 05 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
Feb 21 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 字符串编码截取函数(兼容utf-8和gb2312)
2009/05/02 PHP
PHP中mb_convert_encoding与iconv函数的深入解析
2013/06/21 PHP
浅析PHP绘图技术
2013/07/03 PHP
PHP中time(),date(),mktime()区别介绍
2013/09/28 PHP
php使用mkdir创建多级目录入门例子
2014/05/10 PHP
php中strlen和mb_strlen用法实例分析
2016/11/12 PHP
PHP实现通过文本文件统计页面访问量功能示例
2019/02/13 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
2019/11/26 PHP
非常漂亮的JS代码经典广告
2007/10/21 Javascript
jquery创建一个ajax关键词数据搜索实现思路
2013/02/26 Javascript
jquery 图片缩放拖动的简单实例
2014/01/08 Javascript
jquery实现的简单二级菜单效果代码
2015/09/22 Javascript
Bootstrap轮播插件简单使用方法介绍
2016/06/21 Javascript
jquery 动态合并单元格的实现方法
2016/08/26 Javascript
Javascript获取图片原始宽度和高度的方法详解
2016/09/20 Javascript
JS动态生成年份和月份实例代码
2017/02/04 Javascript
详解html-webpack-plugin用法全解
2018/01/22 Javascript
vue 虚拟dom的patch源码分析
2018/03/01 Javascript
Vue使用json-server进行后端数据模拟功能
2018/04/17 Javascript
基于element-ui封装表单金额输入框的方法示例
2021/01/06 Javascript
[01:15:18]2014 DOTA2国际邀请赛中国区预选赛 LGD VS Speed Gaming.cn
2014/05/22 DOTA
多版本Python共存的配置方法
2017/05/22 Python
python实现媒体播放器功能
2018/02/11 Python
实例详解Matlab 与 Python 的区别
2019/04/26 Python
Python缓存技术实现过程详解
2019/09/25 Python
python绘制玫瑰的实现代码
2020/03/02 Python
Python动态强类型解释型语言原理解析
2020/03/25 Python
python退出循环的方法
2020/06/18 Python
STUBHUB日本:购买和出售全球活动门票
2018/07/01 全球购物
日常奢侈品,轻松购物:Verishop
2019/08/20 全球购物
高校毕业生自我鉴定
2013/10/27 职场文书
学生上课说话检讨书
2014/10/25 职场文书
2015年端午节活动方案
2015/05/05 职场文书
入党积极分子党小组意见
2015/06/02 职场文书
2016领导干部廉洁从政心得体会
2016/01/19 职场文书
python生成随机数、随机字符、随机字符串
2021/04/06 Python