• 置业指南:买高层要注意这些问题 2018-05-22
  • い羛琩矪堵旧笴眏い瓣笴潦ㄆン 2018-05-22
  • 有力有序有效防范化解煤电产能过剩风险 2018-05-22
  • 美好生活的价值追求和实现路径-社会关注-理论频道-中工网 2018-05-21
  • 保罗亲手为自己圆梦 火箭勇士双双会师西部决赛 2018-05-21
  • Floating production, storage and offloading vessel delivered in Qingdao 2018-05-20
  • 汽車定位跟蹤官員意圖敲詐 追蹤器該怎麼管 2018-05-20
  • 工作队精准发力助力贫困村“摘帽” 2018-05-20
  • 中消协发布榨汁机比较试验结果 2018-05-20
  • 游花海林芝,赏野生桃花 2018林芝桃花节29日开幕 2018-05-20
  • 19米99轻松卫冕 巩立姣:没突破20米有点可惜 2018-05-18
  • 海南省工商局出实招提高干部素质 强化工作作风 2018-05-18
  • 栾蕾英亮相TOP100时尚盛典 盛装亮相仙气十足 2018-05-18
  • 以合法形式掩盖非法目的的合同效力 2018-05-18
  • 4月解放领跑重卡行业 红岩保持增幅第一 2018-05-17
  • 关于使用in_array() foreach array_search() 查找数组是否包含时的性能对比

    栏目: 编程语言 发布于: 2014-04-26 17:30:01

    判断某字符是否包含与某于数组中,方法有很多,刚学习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()

    foreach

    array_search()

    由上可以大致看出这三种方法在性能上的表现了吧,array_search 和 in_array 表现差不多,foreach 表现最差。

    本站文章除注明转载外,均为本站原创或编译?;队魏涡问降淖?,但请务必注明出处。
    转载请注明:文章转载自 七星彩票平台
    本文标题:关于使用in_array() foreach array_search() 查找数组是否包含时的性能对比
    IT技术书籍推荐:
    疯狂Java讲义(第3版)
    疯狂Java讲义(第3版)
    李刚 (作者)
    《疯狂Java讲义(第3版)》内容简介:《疯狂Java讲义(第3版)》是《疯狂Java讲义》的第3版,第3版保持了前两版系统、全面、讲解浅显、细致的特性,全面新增介绍了Java 8的新特性,《疯狂Java讲义(第3版)》大部分示例程序都采用Lambda表达式、流式API进行了改写,因此务必使用Java 8的JDK来编译、运行。 《疯狂Java讲义(第3版)》深入介绍了Java编程的相关方面,全书内容覆盖了Java的基本语法结构、Java的面向对象特征、Java集合框架体系、Java泛型、异常处理、Java GUI编程、JDBC数据库编程、Java注释、Java的IO流体系、Java多线程编程、Java网络通信编程和Java反射机制。覆盖了java.lang、java.util、java.text、java.io和java.nio、java.sql、java.awt、javax.swing包下绝大部分类和接口?!斗杩馢ava讲义(第3版)》全面介绍了Java 8的新的接口语法、Lambda表达式、方法引用、构造器引用、函数式编程、流式编程、新的日期、时间API、并行支持、改进的类型推断、重复注解、JDBC 4.2新特性等新特性。