array_unique для объектов?

Есть ли какой-либо метод как array_unique для объектов? У меня есть набор массивов с 'Ролевыми' объектами, которые я объединяю, и затем я хочу вынуть дубликаты :)

73
задан Benjamin 22 October 2014 в 12:55
поделиться

1 ответ

Итак, array_unique () сравнивает строковое значение элементов:

Примечание : два элемента считаются равными тогда и только тогда, когда (строка) $ elem1 === (строка) $ elem2 т.е. когда строковое представление одинаково, будет использоваться первый элемент.

Поэтому убедитесь, что в вашем классе реализован метод __ toString () и что он выводит одно и то же значение для равных ролей, например

class Role {
    private $name;

    //.....

    public function __toString() {
        return $this->name;
    }

}

Это будет рассматривать две роли как равные, если они имеют одинаковое имя.

86
ответ дан 24 November 2019 в 12:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: