Сравнение 2 объектов PHP

Мне нужно сравнить 2 объекта, чтобы удалить дубликаты / найти новые enteries.

Объекты не идентичны, но они содержат один и тот же ключ имени пользователя

Вот макет

объект базы данных

array [0]db->username [0]db->something [1]db->username [1]db->something etc 

другой объект

 array [0]ob->username [0]ob->somethingElse [1]ob->username [1]ob->somethingElse etc 

Я предполагаю, что я могу закодировать один массив объектов и сравнить $ db [$ key] -> имя пользователя с внутренним циклом другого объекта $ ob [$ key] -> username, но есть ли более чистый способ?

Я хочу удалить дубликаты

Нет, нет более чистого способа, вам нужно перебрать свойства. Если это не объекты StdClass, я бы добавил в свой класс собственный метод сравнения:

 class Person { protected $id; protected $name; protected $age; /** * Compares two persons an returns true if their name * and age equals. */ public function equals(Person $b) { if($b->name === $this->name && $b->age === $this->age) { return TRUE; } return FALSE; } } 

Затем используйте его следующим образом:

 $personA = DB::getPersonById(1); $personB = DB::getPersonById(2); if($personA->equals($personB)) { echo "They are equal"; } 

Однако, помимо этого, почему бы просто не удалять дубликаты с использованием SQL или даже лучше использовать уникальные ключи в БД, чтобы избежать дублирования вообще?