龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

关于in_array() foreach array_search() 的性能对比

时间:2014-07-22 14:51来源: 作者: 点击:
分享到:
对于这几个函数,都可以用于判断某字符是否存在于数组中,群里有人在问,所以做了一个简单的测试。br / 请看代码。
对于这几个函数,都可以用于判断某字符是否存在于数组中,群里有人在问,所以做了一个简单的测试。
请看代码。
    <?php
    /*
    *Powered by ciogao@gmail.com
    */
    echo '结论:<br>in_array与array_search效率几乎相同,in_array仅返回真伪,array_search同时返回位置.<br>foreach性能最差<br>';
    $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);
        }
    }
    ?>

2. [图片] in_array()    

3. [图片] foreach    

4. [图片] array_search()    

精彩图集

赞助商链接