针对array_diff()的优化

<?php
/*
* 解决 php 5.2.6 以上版本 array_diff() 函数在处理
* 大数组时的需要花费超长时间的问题
function array_diff_fast($data1, $data2) {
    $data1 = array_flip($data1);
    //$data2 = array_flip($data2);
    foreach($data2 as $hash => $key) {
        if (isset($data1[$key])) unset($data1[$key]);
    }
    return array_flip($data1);
}
$data1 = [1,2,3,4,5,6,7,8];
$data2 = [1,2,3,4,5,123];
//var_dump(array_diff($data1,$data2));//43ms
var_dump(array_diff_fast($data1,$data2));//6ms
?>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 针对 dispatch_once 的优化 dispatch_once 说明 先看这个 很多人写过类似的代码吧?di...
    梨花树下好乘凉阅读 3,865评论 0 0
  • 现在数据库标配基本都是SSD了,在使用SSD之前,对SSD进行了充分的测试,这其中当然包括最为关键的性能测试部分。...
    张伟科阅读 7,736评论 0 2
  • 伫立在春天的植物 在傍晚的风中 互相依偎 行人们表情木然 低头看着脚下 默默数着岁月的呢喃 我在十字街口 没有碰到...
    李清澄阅读 1,826评论 0 1
  • 【目录】 第34回 所谓伊人 渭水南岸为华州地界,向北为潼关,自古就是交通要道,譬如民间采运、官府漕运等均要从渭水...
    若牙阅读 3,971评论 1 2
  • 据说,当初春的新芽铺展开浓黑的墨绿,当娇羞的小花弥散开迷人的芳香,上帝便会给这世间派来一些美丽的精灵。 据说,那些...
    沉木楠下阅读 3,904评论 0 0