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极大的增强功能和性能
Oct 09 PHP
php下安装配置fckeditor编辑器的方法
Mar 02 PHP
ThinkPHP模板中判断volist循环的最后一条记录的验证方法
Jul 01 PHP
mantis安装、配置和使用中的问题小结
Jul 14 PHP
codeigniter上传图片不能正确识别图片类型问题解决方法
Jul 25 PHP
php函数serialize()与unserialize()用法实例
Nov 06 PHP
php获得客户端浏览器名称及版本的方法(基于ECShop函数)
Dec 23 PHP
Zend Framework教程之请求对象的封装Zend_Controller_Request实例详解
Mar 07 PHP
基于PHP生成简单的验证码
Jun 01 PHP
php中访问修饰符的知识点总结
Jan 27 PHP
Laravel事件监听器用法实例分析
Mar 12 PHP
php ZipArchive实现多文件打包下载实例
Oct 31 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
杏林同学录(六)
2006/10/09 PHP
php mysql数据库操作分页类
2008/06/04 PHP
PHP错误Cannot use object of type stdClass as array in错误的解决办法
2014/06/12 PHP
叫你如何修改Nginx与PHP的文件上传大小限制
2014/09/10 PHP
列举PHP的Yii 2框架的开发优势
2015/07/03 PHP
php使用正则验证中文
2016/04/06 PHP
smarty中改进truncate使其支持中文的方法
2016/05/30 PHP
Yii2针对游客、用户防范规则和限制的解决方法分析
2016/10/08 PHP
JS将秒换成时分秒实现代码
2013/09/03 Javascript
javascript获取网页各种高宽及位置的方法总结
2016/07/27 Javascript
JS遍历ul下的li点击弹出li的索引的实现方法
2016/09/19 Javascript
利用jQuery对无序列表排序的简单方法
2016/10/16 Javascript
AngularJS中transclude用法详解
2016/11/03 Javascript
vue-cli+webpack在生成的项目中使用bootstrap实例代码
2017/05/26 Javascript
js获取css的各种样式并且设置他们的方法
2017/08/22 Javascript
React Native模块之Permissions权限申请的实例相机
2017/09/28 Javascript
基于Vue-cli快速搭建项目的完整步骤
2018/11/03 Javascript
VUE项目中加载已保存的笔记实例方法
2019/09/14 Javascript
原生js实现下拉选项卡
2019/11/27 Javascript
JavaScript实现串行请求的示例代码
2020/09/14 Javascript
python解析模块(ConfigParser)使用方法
2013/12/10 Python
Python 运行 shell 获取输出结果的实例
2019/01/07 Python
python 进程间数据共享multiProcess.Manger实现解析
2019/09/23 Python
python中对_init_的理解及实例解析
2019/10/11 Python
Pytorch Tensor基本数学运算详解
2019/12/30 Python
解决pytorch DataLoader num_workers出现的问题
2020/01/14 Python
python递归函数求n的阶乘,优缺点及递归次数设置方式
2020/04/02 Python
PyTorch在Windows环境搭建的方法步骤
2020/05/12 Python
在django admin中配置搜索域是一个外键时的处理方法
2020/05/20 Python
Python进行统计建模
2020/08/10 Python
Nike西班牙官方网站:Nike.com (ES)
2017/10/30 全球购物
介绍一下JMS编程步骤
2015/09/22 面试题
大学生专科学习生活的自我评价
2013/12/07 职场文书
迟到检讨书大全
2014/01/25 职场文书
工作会议方案
2014/05/21 职场文书
2015年教研工作总结
2015/05/23 职场文书