Есть ли какой-либо метод как array_unique для объектов? У меня есть набор массивов с 'Ролевыми' объектами, которые я объединяю, и затем я хочу вынуть дубликаты :)
Итак, array_unique ()
сравнивает строковое значение элементов:
Примечание : два элемента считаются равными тогда и только тогда, когда
(строка) $ elem1 === (строка) $ elem2
т.е. когда строковое представление одинаково, будет использоваться первый элемент.
Поэтому убедитесь, что в вашем классе реализован метод __ toString ()
и что он выводит одно и то же значение для равных ролей, например
class Role {
private $name;
//.....
public function __toString() {
return $this->name;
}
}
Это будет рассматривать две роли как равные, если они имеют одинаковое имя.