Назад

Фильтрация элементов в Битрикс: полное руководство по работе с arFilter

Главная
Блог
Фильтрация элементов в Битрикс: полное руководство по работе с arFilter

В этой статье разберем ключевые аспекты фильтрации данных в Битрикс с помощью arFilter. Вы узнаете, как применять различные условия, строить сложные фильтры и использовать подзапросы для эффективной выборки элементов.

Основные операторы фильтрации в Битрикс

В arFilter доступны не только простые сравнения, но и расширенные операторы:

  • "!" – не равно

  • "<" – меньше

  • "<=" – меньше или равно

  • ">" – больше

  • ">=" – больше или равно

  • "><" – между (редко используется)

Пример:

'>=CATALOG_PRICE_1' => '250', // Цена >= 250
'!PROPERTY_STOCK' => 'N',     // Товар не отсутствует

Оптимизация выборки данных

Использование arFilter и arSelect позволяет избежать лишних проверок в коде и сократить нагрузку на базу данных.

Пример выборки с фильтром и ограничением полей:

$arFilter = array(
    "IBLOCK_ID" => 14,
    "ACTIVE" => "Y",
    "PROPERTY_SALELEADER_VALUE" => "да"
);
$arSelect = array("ID", "NAME", "CODE"); // Только нужные поля

Сложная логика фильтрации (AND/OR)

Для составных условий используется LOGIC:

  • "AND" – все условия должны выполняться

  • "OR" – хотя бы одно условие должно быть верным

Пример:

$arFilter = array(
    "IBLOCK_ID" => $IBLOCK_ID,
    array(
        "LOGIC" => "OR",
        array("<PROPERTY_RADIUS" => 50, "=PROPERTY_CONDITION" => "Y"),
        array(">=PROPERTY_RADIUS" => 50, "!=PROPERTY_CONDITION" => "Y"),
    )
);

Подзапросы в фильтрации

Если нужно отфильтровать элементы по связанным данным, используйте CIBlockElement::SubQuery.

Пример:

$arSubQuery = array('IBLOCK_ID' => 33, '>CATALOG_PRICE_3' => 0);

$arFilter = array(
    "SECTION_ID" => $arResult['ID'],
    array(
        "LOGIC" => "OR",
        array('>CATALOG_PRICE_3' => 0, 'IBLOCK_ID' => 6),
        array('ID' => CIBlockElement::SubQuery('PROPERTY_CML2_LINK', $arSubQuery)),
    )
);

Вывод

Правильное использование arFilter в Битрикс позволяет:
Уменьшить количество лишних проверок
Оптимизировать запросы к базе данных
Гибко настраивать выборку элементов

Внедряйте эти методы в свои проекты, чтобы писать чистый и эффективный код!

Нужен надежный исполнитель?
Разрабатываем сайты, выполняем миграцию на Битрикс, дорабатываем функционал, сопровождаем проекты, а также занимаемся поисковым продвижением и комплексным маркетингом
Получить консультацию
Читайте по теме
Все статьи
Нужен надежный исполнитель?
Разрабатываем сайты, выполняем миграцию на Битрикс, дорабатываем функционал, сопровождаем проекты, а также занимаемся поисковым продвижением и комплексным маркетингом
Получить консультацию
Все статьи