删除重复或创建没有重复的新数组的最有效方法是什么?是否有任何内置的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
)
)
非常感谢,卢克
答案 0 :(得分:2)
我怀疑在这种情况下有比foreach()
循环更快的东西。
答案 1 :(得分:1)
array_unique
应该可以帮到你。 array_unique
请参阅此键盘here
答案 2 :(得分:0)
首先,您必须决定重复项的含义,例如在上面的数组中,0
和2
中的项可以引用相同的实例,或者它可以是两个完全不同的例子。
查看here以了解有关在PHP中比较对象的更多信息。
简而言之,如果重复是指对同一个对象的引用,那么你很幸运,因为使用array_unique非常容易:
array_unique($array);
将完成这项工作。
另一方面,如果你想删除具有相同值的对象,我猜不太可能,那么你可以使用array_filter,它带有一个回调函数,你可以删除中的项目数组。我把回调的编程留给你。 ;)