У меня есть такой объект:
class FanStruct{ public $date; public $userid; function __construct($date, $id){ $this->date = $date; $this->userid = $id; } }
Я имею максимум 30 из них в массиве, и они сортируются по $userid
.
Каков наилучший способ пойти через массив и удалить дубликаты объектов на основе $userid
(игнорируя $date
)?
Вот простой тест, который, по крайней мере, должен помочь вам начать. Возможно, ваш метод __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]; }
Требуется временная переменная, но работает.