Как удалить дубликаты в массиве объектов в PHP?

У меня есть такой объект:

class FanStruct{ public $date; public $userid; function __construct($date, $id){ $this->date = $date; $this->userid = $id; } } 

Я имею максимум 30 из них в массиве, и они сортируются по $userid .

Каков наилучший способ пойти через массив и удалить дубликаты объектов на основе $userid (игнорируя $date )?

Solutions Collecting From Web of "Как удалить дубликаты в массиве объектов в PHP?"

Вот простой тест, который, по крайней мере, должен помочь вам начать. Возможно, ваш метод __toString должен быть более сложным, чтобы генерировать уникальность для ваших экземпляров FanStruct


<?php class FanStruct{ public $date; public $userid; function __construct($date, $id){ $this->date = $date; $this->userid = $id; } public function __toString() { return $this->date . $this->userid; } } $test = array( new FanStruct( 'today', 1 ) ,new FanStruct( 'today', 1 ) ,new FanStruct( 'tomorrow', 1 ) ); print_r( array_unique( $test ) ); ?> </pre>

 $temp = array($fans[$x]); for(var $x=1;$x<sizeof($fans);$x++) { if ($fans[$x]->userid != $fans[$x]->userid) $temp[] = $fans[$x]; } 

Требуется временная переменная, но работает.