«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как я могу использовать Array_unique для удаления повторяющихся объектов в PHP?

Как я могу использовать Array_unique для удаления повторяющихся объектов в PHP?

Опубликовано 13 ноября 2024 г.
Просматривать:478

How Can I Use `array_unique` to Remove Duplicate Objects in PHP?

Уникальные объекты с array_unique

В PHP функция array_unique помогает исключить повторяющиеся значения из массива. Однако при работе с массивами, содержащими объекты, эта функция может работать не так, как ожидалось.

Введите решение:

Для массивов объектов вы можете использовать array_unique с флагом сравнения SORT_REGULAR. Этот флаг предписывает функции сравнивать объекты по их свойствам, а не по ссылкам на них.

Реализация:

Рассмотрим массив объектов Role:

class Role {
    public $name;
}

$foo = new Role();
$foo->name = 'test1';

$bar = $foo;

$bam = new Role();
$bam->name = 'test2';

$test = array($foo, $bar, $bam);

Чтобы удалить дубликаты с помощью array_unique:

print_r(array_unique($test, SORT_REGULAR));

Вывод:

Array (
    [0] => Role Object
        (
            [name] => test1
        )

    [2] => Role Object
        (
            [name] => test2
        )
)

Внимание:

Важно отметить, что array_unique с SORT_REGULAR использует сравнение "==", а не строгое сравнение ("==="). Это означает, что объекты с одинаковыми свойствами, но разными ссылками на объекты по-прежнему будут считаться дубликатами.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3