美文网首页PHP DevPHP经验分享
高效去除php数组重复值

高效去除php数组重复值

作者: Stone_Zhuo | 来源:发表于2016-10-29 21:33 被阅读745次

大部分人会使用数组array_unique()来去除数组中的重复值,这么干是可以达到目的,不过比较低效,更为高效的方法是使用函数array_flip()。例证:

    $arr_origin = ['China', 'America', 'Russia', 'England', 'France'];
    $arr_test = [];
    for ($i = 0;$i < 100;$i++ ) {
            $arr_test[] = $arr_origin[rand(0, 4)];
    }

    $time_start_one = microtime(true);
    for ($i = 0;$i < 10000;$i++) {
            array_unique($arr_test);
    }
    $time_end_one = microtime(true);
    echo 'array_unique()所用时间为:'.($time_end_one - $time_start_one);

    echo '<br />';

    $time_start_two = microtime(true);
    for ($i = 0;$i < 10000;$i++) {
            array_flip(array_flip($arr_test));
    }
    $time_end_two = microtime(true);
    echo 'array_flip()所用时间为:'.($time_end_two - $time_start_two);

运行以上代码三次得到结果为:

第一次.png 第二次.png 第三次.png

有兴趣的同学可以多运行几次,结果基本是稳定的,毫无疑问我们可以得出结论:array_flip()要比array_unique()更高效。

为什么array_flip()要比array_unique()更高效呢?笔者没有去研究源代码,个人觉得跟这两个函数的运行机制有关系。array_flip()是将数组的键和值相互交换,在php中数组的键是不能重复的,如果重复则后面的元素会覆盖前面的元素,这样就把原来值重复的项只保留了最后一个,再次调用array_flip()函数将键和值再次交换得到去除重复值的数组。array_unique()去除数组重复值应该是用到了遍历,所以它的效率会比array_flip()差很多。

本文首发于公众号:programmer_cc,转载请注明出处。


微信公众号.jpg

相关文章

  • 高效去除php数组重复值

    大部分人会使用数组array_unique()来去除数组中的重复值,这么干是可以达到目的,不过比较低效,更为高效的...

  • MongoDb中$addToSet和$push的区别

    名词解释 $addToSet :为组里唯一的值创建一个数组,去除重复的值。 $push : 返回组内所有值的数组,...

  • JavaScript - 利用js对象去掉数组的重复项

    由于js中对象的key值永不重复,可以将数组转化为对象,去除重复值 1. 把数组转成js的对象 2. 把当前对象,...

  • 暑假复习5

    1求总分 最高分 最低分 2求数组中的最大值 3去除数组中的重复项

  • removeDuplicates(数组)

    给定一个排序好的数组,去除重复的值 remove 1 https://leetcode.com/problems/...

  • php获取数组中重复数据的两种方法

    PHP array_unique() 函数 array_unique() 函数移除数组中的重复的值,并返回结果数组...

  • Set和Map数据结构

    参考:《Set和Map数据结构》 1. Set Set中成员的值是唯一的,没有重复的值。可以用于去除数组重复数据。...

  • iOS 从数组随机取元素

    数组随机取元素 — 不考虑重复情况 数组随机取元素 — 去除重复元素

  • PHP常用的函数

    PHP常用的函数整理1.array_unique() 函数用于移除数组中重复的值。如果两个或更多个数组值相同,只保...

  • 数组

    1. 去除数组中的重复元素 题目 已知一个已经排序的数组,去除数组中的重复元素,返回数组的长度。 思路 使用双指针...

网友评论

    本文标题:高效去除php数组重复值

    本文链接:https://www.haomeiwen.com/subject/xiansttx.html