пример LOGIC:
[B][U]Задача[/U][/B]: [I]Вывести все элементы инфоблока, у которых совпадают пары производитель + артикул.[/I]
[CODE]$arFilter = Array("IBLOCK_TYPE"=>$arParams['IBLOCK_TYPE'], "ACTIVE_DATE"=>"Y", "ACTIVE"=>"Y");
$arrayMasAnalogs = array("LOGIC" => "OR");
foreach ($mas_analogs as $arAnalog) {
$arrayMasAnalogs[] = array(
'LOGIC'=>'AND',
array('PROPERTY_ECH_PRODUCER.NAME'=>$arAnalog['SUP_BRAND'],
'PROPERTY_ECH_CODE'=>$arAnalog['ART_ARTICLE_NR'])
);
}
$arFilter[] = $arrayMasAnalogs;[/CODE][CODE]PROPERTY_ECH_PRODUCER - свойство типа "привязка к элементу инфоблока". Производителя ищем по его названию.
[/CODE][CODE]PROPERTY_ECH_CODE - свойство типа "строка".[/CODE]Первой строкой задаем обычный фильтр (в моем случае фильтрация по конкретному инфоблоку заменена на фильтрацию по типу инфоблока)
Вторая строка говорит о том, что дальше пойдет условие "ИЛИ"
Далее в массиве перебираем все пары значений Производитель + Артикул.
Обратите особое внимание, что каждый блок для "ИЛИ" - это массив, А т.к. внутри "ИЛИ" размещается еще и условие "И", то содержимое условия "И" - также вложенный массив. К стати, строку #5 можно опустить -. это значение по умолчанию.
В результате получаем примерно такую структуру:
....
ИЛИ{
{И{бренд,артикул}}
{И{бренд,артикул}}
}
[B][U]Задача[/U][/B]: [I]Вывести все элементы инфоблока, у которых совпадают пары производитель + артикул.[/I]
[CODE]$arFilter = Array("IBLOCK_TYPE"=>$arParams['IBLOCK_TYPE'], "ACTIVE_DATE"=>"Y", "ACTIVE"=>"Y");
$arrayMasAnalogs = array("LOGIC" => "OR");
foreach ($mas_analogs as $arAnalog) {
$arrayMasAnalogs[] = array(
'LOGIC'=>'AND',
array('PROPERTY_ECH_PRODUCER.NAME'=>$arAnalog['SUP_BRAND'],
'PROPERTY_ECH_CODE'=>$arAnalog['ART_ARTICLE_NR'])
);
}
$arFilter[] = $arrayMasAnalogs;[/CODE][CODE]PROPERTY_ECH_PRODUCER - свойство типа "привязка к элементу инфоблока". Производителя ищем по его названию.
[/CODE][CODE]PROPERTY_ECH_CODE - свойство типа "строка".[/CODE]Первой строкой задаем обычный фильтр (в моем случае фильтрация по конкретному инфоблоку заменена на фильтрацию по типу инфоблока)
Вторая строка говорит о том, что дальше пойдет условие "ИЛИ"
Далее в массиве перебираем все пары значений Производитель + Артикул.
Обратите особое внимание, что каждый блок для "ИЛИ" - это массив, А т.к. внутри "ИЛИ" размещается еще и условие "И", то содержимое условия "И" - также вложенный массив. К стати, строку #5 можно опустить -. это значение по умолчанию.
В результате получаем примерно такую структуру:
....
ИЛИ{
{И{бренд,артикул}}
{И{бренд,артикул}}
}