avgustov
@avgustov

Как убрать дубликаты при выводе свойств элементов на сайте битрикс?

Сделал на сайте таблицу, и вней добавил фильтрацию по нужным свойствам. Но выводятся дубликаты. Скрин под спойлером

4b33055016d1a0fe9c7ae9bad33b13f1-full.png

Вопрос в том что нужно дописать что-бы убрать дубликаты, я что-то не могу сообразить. Может сможет кто подсказать
Используемый код:
<select class="drop" id="regionDropdown">
            <option value="All">Показать все</option>
            <?foreach($arResult["ITEMS"] as $arItem):?>
            <?if(!empty($arItem['DISPLAY_PROPERTIES']['FILM_TYPES']['VALUE'])):?>
            <option value="<?=$arItem['DISPLAY_PROPERTIES']['FILM_TYPES']['DISPLAY_VALUE'];?>"><? endif; ?><?=$arItem['DISPLAY_PROPERTIES']['FILM_TYPES']['DISPLAY_VALUE'];?></option>
            <? endif; ?>
            <? endforeach; ?>
         </select>


Буду очень благодарен если кто-то поделится знаниями :)
  • Вопрос задан
  • 516 просмотров
Решения вопроса 1
@PetrPo
В result_modifier.php
if($arResult['ITEMS']) {
	$arResult['FILE_TYPES'] = $filmTypes = [];
	
	foreach($arResult['ITEMS'] as $key => $arItem) {
		$filmTypesProp = isset($arItem['DISPLAY_PROPERTIES']['FILM_TYPES']) ? $arItem['DISPLAY_PROPERTIES']['FILM_TYPES'] : false;
		$value = $filmTypesProp && $filmTypesProp['VALUE'] ? $filmTypesProp['VALUE'] : false;
		$displayValue = $filmTypesProp && $filmTypesProp['DISPLAY_VALUE'] ? $filmTypesProp['DISPLAY_VALUE'] : false;
		
		if($value && $displayValue) {
			$filmTypes['VALUE'][] = $value;
			$filmTypes['DISPLAY_VALUE'][] = $displayValue;
		}
	}
	
	$arResult['FILE_TYPES'] = [
		'VALUE' => array_values(array_unique($filmTypes['VALUE'])),
		'DISPLAY_VALUE' => array_values(array_unique($filmTypes['DISPLAY_VALUE'])),
	];
}


Где сам select выводишь
<?if(isset($arResult['FILE_TYPES']) && $arResult['FILE_TYPES']):?>
	<select class="drop" id="regionDropdown">
		<option value="All">Показать все</option>
		<?foreach($arResult['FILE_TYPES']['DISPLAY_VALUE'] as $value):?>
			<option value="<?=$value;?>"><?=$value;?></option>
		<?endforeach;?>
	 </select>
<?endif;?>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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