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 pack与unpack 摸板字符字符含义
Oct 29 PHP
php 短链接算法收集与分析
Dec 30 PHP
解析php时间戳与日期的转换
Jun 06 PHP
hadoop常见错误以及处理方法详解
Jun 19 PHP
php ci框架验证码实例分析
Jun 26 PHP
php实现事件监听与触发的方法
Nov 21 PHP
PHP使用mysql_fetch_object从查询结果中获取对象集的方法
Mar 18 PHP
使用PHPCMS搭建wap手机网站
Sep 20 PHP
PHP 输出缓冲控制(Output Control)详解
Aug 25 PHP
thinkPHP5框架分页样式类完整示例
Sep 01 PHP
PHP信号处理机制的操作代码讲解
Apr 19 PHP
laravel 解决Eloquent ORM的save方法无法插入数据的问题
Oct 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
Fine Uploader文件上传组件应用介绍
2013/01/06 PHP
php设置静态内容缓存时间的方法
2014/12/01 PHP
PHP保存session到memcache服务器的方法
2016/01/19 PHP
PHP实现生成带背景的图形验证码功能
2016/10/03 PHP
PHPMailer发送邮件
2016/12/28 PHP
动态表单验证的操作方法和TP框架里面的ajax表单验证
2017/07/19 PHP
php静态成员方法和静态的成员属性的使用方法
2017/10/26 PHP
JavaScript 程序编码规范
2010/11/23 Javascript
javascript实现tabs选项卡切换效果(扩展版)
2013/03/19 Javascript
JavaScript实现url地址自动检测并添加URL链接示例代码
2013/11/12 Javascript
js返回前一页刷新本页重载页面
2014/07/29 Javascript
jQuery针对各类元素操作基础教程
2014/08/29 Javascript
JavaScript中Number.MIN_VALUE属性的使用示例
2015/06/04 Javascript
javascript实现tab切换的四种方法
2015/11/05 Javascript
JS实现对中文字符串进行utf-8的Base64编码的方法(使其与Java编码相同)
2016/06/21 Javascript
通过js修改input、select默认字体颜色
2017/04/19 Javascript
vuejs+element-ui+laravel5.4上传文件的示例代码
2017/08/12 Javascript
Vue  webpack 项目自动打包压缩成zip文件的方法
2019/07/24 Javascript
vue实现点击追加选中样式效果
2019/11/01 Javascript
vue 实现超长文本截取,悬浮框提示
2020/07/29 Javascript
python抓取网页图片示例(python爬虫)
2014/04/27 Python
flask中主动抛出异常及统一异常处理代码示例
2018/01/18 Python
TensorFlow模型保存/载入的两种方法
2018/03/08 Python
python基于http下载视频或音频
2018/06/20 Python
一篇文章弄懂Python中所有数组数据类型
2019/06/23 Python
使用python的pandas为你的股票绘制趋势图
2019/06/26 Python
使用css3实现的windows8开机加载动画
2014/12/09 HTML / CSS
蔻驰美国官网:COACH美国
2016/08/18 全球购物
Lookfantastic西班牙官网:英国知名美妆购物网站
2018/06/13 全球购物
可口可乐广告词
2014/03/20 职场文书
学习雷锋活动总结
2014/04/29 职场文书
国际贸易毕业生自荐书
2014/06/22 职场文书
2014年财务经理工作总结
2014/12/08 职场文书
涨价通知怎么写
2015/04/23 职场文书
《这片土地是神圣的》教学反思
2016/02/16 职场文书
HTML中table表格拆分合并(colspan、rowspan)
2021/04/07 HTML / CSS