FCIBlockElement::GetPropertyValuesArray

Описание

Метод статический: Получает значения свойств элементов одного инфоблока с учётом заданного фильтра и сохраняет их в переданном массиве по ссылке. Переопределяет базовый метод CIBlockElement::GetPropertyValuesArray. Оптимизирован для компонентов и поддерживает мультиязычность: при указании параметра $LANGUAGE_ID возвращает переведённые значения свойств для каждого элемента.

Рекомендуется как производительная альтернатива конструкции:

Code Copy code Code copied!
1
2
3
4
5
$iterator = FCIBlockElement::GetList();
while ($obj = $iterator->GetNextElement())
{
    $properties = $obj->GetProperties();
}

Использование GetPropertyValuesArray() позволяет избежать множества вызовов GetProperties() и значительно ускоряет выборку при работе с компонентами, особенно в мультиязычных проектах.

Сигнатура метода

Code Copy code Code copied!
1
2
3
4
5
6
7
8
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 с локализованными значениями.

Пример

Code Copy code Code copied!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// Получаем элементы
$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