Здравствуйте!
столкнулся со следующей проблемой:
есть иб, у элемента этого иб есть доп. поле с перечисленными артикулами товара через запятую, например
Артикул: [Артикул1, Артикул2, Артикул3 ]
когда я ищу по одному артикулу я задаю такой фильтр "%PROPERTY_ARTICUL" => $ART, то есть я ищу вхождение этой строки в поле артикул, и все хорошо работает, но у меня есть другая форма, где перечисляются все нужные артикулы, то есть массив артикулов и нужно с помощью фильтра получить все элементы удовлетворяющие этим артикулом.
я нашел два варианта, которые у меня не работают: приведу сейчас код:
$arrFilter = array(
"IBLOCK_ID" => "12",
array(
"LOGIC" => "OR",
"%PROPERTY_OEM" => $filter2,
)
);
где $filter2 формируется след. образом
for($i=0; $i < count($arOEMs); $i++){
$filter2[$i] = $arOEMs[$i];
}
это не работает.
второй способ:
for($i=0; $i < count($arOEMs); $i++){
$k = array("%PROPERTY_OEM" => $arOEMs[$i]);
$filter[$i] = $k;
}
$arFilter = array();
$arFilter["IBLOCK_ID"] = "12";
$arFilter[] = CMap::mergeArray(array("LOGIC" => "OR"), $filter);
так же ничего не вышло.
Если поняли мою задачу или есть какой нибудь опыт, то подскажите пожалуйста, буду благодарен.
столкнулся со следующей проблемой:
есть иб, у элемента этого иб есть доп. поле с перечисленными артикулами товара через запятую, например
Артикул: [Артикул1, Артикул2, Артикул3 ]
когда я ищу по одному артикулу я задаю такой фильтр "%PROPERTY_ARTICUL" => $ART, то есть я ищу вхождение этой строки в поле артикул, и все хорошо работает, но у меня есть другая форма, где перечисляются все нужные артикулы, то есть массив артикулов и нужно с помощью фильтра получить все элементы удовлетворяющие этим артикулом.
я нашел два варианта, которые у меня не работают: приведу сейчас код:
$arrFilter = array(
"IBLOCK_ID" => "12",
array(
"LOGIC" => "OR",
"%PROPERTY_OEM" => $filter2,
)
);
где $filter2 формируется след. образом
for($i=0; $i < count($arOEMs); $i++){
$filter2[$i] = $arOEMs[$i];
}
это не работает.
второй способ:
for($i=0; $i < count($arOEMs); $i++){
$k = array("%PROPERTY_OEM" => $arOEMs[$i]);
$filter[$i] = $k;
}
$arFilter = array();
$arFilter["IBLOCK_ID"] = "12";
$arFilter[] = CMap::mergeArray(array("LOGIC" => "OR"), $filter);
так же ничего не вышло.
Если поняли мою задачу или есть какой нибудь опыт, то подскажите пожалуйста, буду благодарен.