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环境配置 php5 MySQL5 apache2 phpmyadmin安装与配置图文教程
Mar 16 PHP
php继承的一个应用
Sep 06 PHP
教你如何开启shopnc b2b2c 伪静态
Oct 21 PHP
服务器上配置PHP运行环境教程
Feb 12 PHP
php实现的mongodb操作类
May 28 PHP
php实现的农历算法实例
Aug 11 PHP
php获取excel文件数据
Apr 21 PHP
phpmyadmin下载、安装、配置教程
May 16 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
Nov 17 PHP
PHP基于redis计数器类定义与用法示例
Feb 08 PHP
使用PHP访问RabbitMQ消息队列的方法示例
Jun 06 PHP
php数组指针函数功能及用法示例
Feb 11 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中的类-什么叫类
2006/11/20 PHP
Joomla下利用configuration.php存储简单数据
2010/05/19 PHP
ThinkPHP入库出现两次反斜线转义及数据库类转义的解决方法
2014/11/04 PHP
Yii CFileCache 获取不到值的原因分析
2017/02/08 PHP
PHP7内核CGI与FastCGI详解
2019/04/14 PHP
Add a Table to a Word Document
2007/06/15 Javascript
从JavaScript 到 JQuery (1)学习小结
2009/02/12 Javascript
JavaScript对象之深度克隆介绍
2014/12/08 Javascript
使用bootstrap实现多窗口和拖动效果
2016/09/22 Javascript
Javascript this 函数深入详解
2016/12/13 Javascript
微信小程序的分类页面制作
2017/06/27 Javascript
微信小程序 Buffer缓冲区的详解
2017/07/06 Javascript
JQuery特殊效果和链式调用操作示例
2019/05/13 jQuery
Vue+Node服务器查询Mongo数据库及页面数据传递操作实例分析
2019/12/20 Javascript
JavaScript碰撞检测原理及其实现代码
2020/03/12 Javascript
JS正则表达式验证密码强度
2020/03/18 Javascript
实现vuex原理的示例
2020/10/21 Javascript
[03:02]辉夜杯主赛事第二日 每日之星
2015/12/27 DOTA
Django压缩静态文件的实现方法详析
2018/08/26 Python
python+opencv打开摄像头,保存视频、拍照功能的实现方法
2019/01/08 Python
使用Template格式化Python字符串的方法
2019/01/22 Python
Python音频操作工具PyAudio上手教程详解
2019/06/26 Python
Python程序打包工具py2exe和PyInstaller详解
2019/06/28 Python
python实现身份证实名认证的方法实例
2019/11/08 Python
Pytorch基本变量类型FloatTensor与Variable用法
2020/01/08 Python
利用html5的websocket实现websocket聊天室
2013/12/12 HTML / CSS
移动端html5 meta标签的神奇功效
2016/01/06 HTML / CSS
技校教师求职简历的自我评价
2013/10/20 职场文书
总经理岗位职责
2013/11/09 职场文书
车辆委托书范本
2014/10/05 职场文书
国庆横幅标语
2014/10/08 职场文书
诉讼授权委托书
2014/10/15 职场文书
党员个人查摆剖析材料
2014/10/16 职场文书
AJAX实现省市县三级联动效果
2021/10/16 Javascript
聊聊Lombok中的@Builder注解使用教程
2021/11/17 Java/Android
升级 Win11 还是坚守 Win10?微软 Win11 新系统缺失功能大盘点
2022/04/05 数码科技