свойством а мне возвращается элемент в нескольких массивах если у него множественное свойство заполнено?
Так работает выборка ->registerRuntimeField( new ExpressionField('YOUR_REFERENCE', 'GROUP_CONCAT(DISTINCT %s SEPARATOR \',\')', ['YOUR_PROPERTY.VALUE'], [ 'fetch_data_modification' => static function () { return [ static function ($value) { return explode(',', $value); }, ]; }, ] ) )
Используй RuntimeField чтобы массив возвращало в одном элементе
Это я так понимаю если через D7 выборку делать там можно указать runtimefield, а если через CIBlockElement то как это сделать?
старым API не пользуюсь, не подскажу
Если свойств немного, можете перевести ИБ на хранение значений свойств в отдельной таблице (Инфоблоки 2.0)
Не добавлять свойства в select, а получать их отдельно.
То есть дополнительным запросом CIBlockElement::GetProperty внутри цикла их дергать?
Нет. Собрать id полученных элементов и дернуть CIBlockElement::GetPropertyValuesArray после цикла.
Аа, все понял. Спасибо большое
Обсуждают сегодня