Как убрать дублирование элемента с множественным свойством когда получаешь его через BitrixIblockElementsElementXXXTable::getList?

Для устранения дублирования элемента с множественным свойством, полученного через BitrixIblockElementsElementXXXTable::getList, вам следует использовать методы для работы с уникальными значениями.

Прежде всего, убедитесь, что в вашем запросе getList установлен фильтр и сортировка, чтобы получить только нужные вам элементы без дублирования. Например, вы можете использовать метод setGroup(['PROPERTY_MULTI' ]) для группировки элементов по свойствам:

$query = ElementXXXTable::getList([
   'select' => ['ID', 'NAME'],
   'filter' => ['ACTIVE' => 'Y'],
   'group' => ['PROPERTY_MULTI']
]);

Здесь 'PROPERTY_MULTI' - это символьный код множественного свойства элемента, которое вы хотите использовать для группировки. Замените его на свой символьный код.

Если вам необходимо получить элементы с уникальными значениями множественного свойства после выполнения запроса getList, вы можете воспользоваться функцией array_unique. Предположим, что ваш запрос вернул массив элементов $elements, а символьный код множественного свойства - 'PROPERTY_MULTI'. Используйте следующий код:

$uniqueElements = array_unique(array_column($elements, 'PROPERTY_MULTI'));

Здесь функция array_column() используется для получения всех значений свойства 'PROPERTY_MULTI' из массива $elements, а функция array_unique() удаляет дубликаты из полученного массива значений.

После выполнения этих шагов, вы получите новый массив $uniqueElements с уникальными значениями множественного свойства 'PROPERTY_MULTI'.

Обратите внимание, что эти методы работают только на уровне PHP и могут быть неэффективными при больших объемах данных. Если у вас есть множество элементов и вы хотите исключить дублирование на уровне базы данных, вам, возможно, придется использовать другие методы, такие как операторы DISTINCT в SQL-запросе или использование временных таблиц.