Описание
Метод статический: Получает значения свойств элементов одного инфоблока с учётом заданного фильтра и сохраняет их в переданном массиве по ссылке. Переопределяет базовый метод CIBlockElement::GetPropertyValuesArray.
Оптимизирован для компонентов и поддерживает мультиязычность: при указании параметра $LANGUAGE_ID возвращает переведённые значения свойств для каждого элемента.
Рекомендуется как производительная альтернатива конструкции:
$iterator = FCIBlockElement::GetList();
while ($obj = $iterator->GetNextElement())
{
$properties = $obj->GetProperties();
}
Использование GetPropertyValuesArray() позволяет избежать множества вызовов GetProperties() и значительно ускоряет выборку при работе с компонентами, особенно в мультиязычных проектах.
Сигнатура метода
void FCIBlockElement::GetPropertyValuesArray( array &$result, int $iblockID, array $filter, array $propertyFilter = [], array $options = [], string $LANGUAGE_ID = LANGUAGE_ID );
Параметры вызова
| Параметр | Описание | С версии |
|---|---|---|
| result | Ссылка на массив, содержащий элементы. Внутри каждого элемента будет заполнен массив PROPERTIES с переведёнными значениями. |
1.0.0 |
| iblockID | Идентификатор инфоблока, к которому принадлежат элементы. | 1.0.0 |
| filter | Массив условий фильтрации элементов. Используется для выборки свойств только тех элементов, которые прошли отбор. | 1.0.0 |
| propertyFilter | Фильтр по конкретным свойствам. Указывается по коду или ID. | 1.0.0 |
| options | Массив дополнительных опций (например, USE_PROPERTY_ID). |
1.0.0 |
| LANGUAGE_ID | Код языка, на котором требуется получить переведённые значения. По умолчанию используется текущий язык сайта. | 2.5.100 |
Возвращаемое значение
Метод не возвращает значение. Все данные свойств записываются непосредственно в массив $result, переданный по ссылке.
Для каждого элемента будет заполнено поле PROPERTIES с локализованными значениями.
Пример
// Получаем элементы
$arFilter = ['IBLOCK_ID' => 5, 'ACTIVE' => 'Y'];
$arSelect = ['ID', 'NAME'];
$res = CIBlockElement::GetList([], $arFilter, false, false, $arSelect);
$result = [];
while ($row = $res->Fetch()) {
$result[$row['ID']] = $row;
}
// Получаем свойства на английском языке
FCIBlockElement::GetPropertyValuesArray($result, 5, $arFilter, [], [], 'en');
foreach ($result as $item) {
echo $item["NAME"] . ": " . $item["PROPERTIES"]["UF_CUSTOM"]["VALUE"] . "<br>";
}
Примечание: Метод рекомендуется как замена стандартной схемы GetNextElement() + GetProperties() для повышения производительности при выводе данных в компонентах.
Благодаря поддержке языка упрощает реализацию мультиязычных интерфейсов без дополнительной логики трансформации данных.
Описание метода CIBlockElement::GetPropertyValuesArray в официальной документации Битрикс
Количество показов: 721
Дата изменения: 23.06.2025 13:51:22