array_unique
работает с массивом объектов, используя SORT_REGULAR
:
class MyClass {
public $prop;
}
$foo = new MyClass();
$foo->prop = 'test1';
$bar = $foo;
$bam = new MyClass();
$bam->prop = 'test2';
$test = array($foo, $bar, $bam);
print_r(array_unique($test, SORT_REGULAR));
Напечатает:
Array (
[0] => MyClass Object
(
[prop] => test1
)
[2] => MyClass Object
(
[prop] => test2
)
)
Смотрите это в действии здесь: http://3v4l.org/VvonH#v529
Предупреждение : будет использоваться сравнение "==", а не строгое ("===").
Поэтому, если вы хотите удалить дубликаты внутри массива объектов, имейте в виду, что он будет сравнивать свойства каждого объекта, а не сравнивать идентичность объекта (экземпляр).