PHP - 从对象数组中删除重复项

时间:2013-05-27 21:51:47

标签: php arrays

删除重复或创建没有重复的新数组的最有效方法是什么?是否有任何内置的PHP函数可以保存此手动删除?

[2013-05-27 22:35:55]: Array
(
    [0] => stdClass Object
        (
            [type] => 1
            [val] => 1111
        )

    [1] => stdClass Object
        (
            [type] => 1
            [val] => 2222
        )

    [2] => stdClass Object
        (
            [type] => 1
            [val] => 1111
        )

    [3] => stdClass Object
        (
            [type] => 1
            [val] => 2222
        )
)

非常感谢,卢克

3 个答案:

答案 0 :(得分:2)

我怀疑在这种情况下有比foreach()循环更快的东西。

答案 1 :(得分:1)

array_unique应该可以帮到你。 array_unique

请参阅此键盘here

答案 2 :(得分:0)

首先,您必须决定重复项的含义,例如在上面的数组中,02中的项可以引用相同的实例,或者它可以是两个完全不同的例子。

查看here以了解有关在PHP中比较对象的更多信息。

简而言之,如果重复是指对同一个对象的引用,那么你很幸运,因为使用array_unique非常容易:

array_unique($array);

将完成这项工作。

另一方面,如果你想删除具有相同值的对象,我猜不太可能,那么你可以使用array_filter,它带有一个回调函数,你可以删除中的项目数组。我把回调的编程留给你。 ;)