Как найти элементы в Битрикс у которых значение свойства совпадает с заданным массивом значений?

Пытаюсь собрать следующим образом, но не то:

'''

if ($arResult['PROPERTIES']['MUADIL']['VALUE']){
    $strcode=explode(",",$arResult['PROPERTIES']['MUADIL']['VALUE']);
}

$arSelect = Array("ID", "NAME", "CODE", "PROPERTY_DETALIN_KODU");
$arFilter = Array(
    "IBLOCK_ID" => 30,
    "ACTIVE_DATE"=>"Y",
    "ACTIVE"=>"Y",
    "PROPERTY_DETALIN_KODU_VALUE" => $strcode
);

$res = CIBlockElement::GetList(Array(), $arFilter, false, Array("nPageSize"=>50), $arSelect);
AddMessage2Log($res, "my_module_id");

while($ob = $res->GetNextElement())
{
 $arFields = $ob->GetFields();
 print_r($arFields);
}

'''


Ответы (1 шт):

Автор решения: maxkuku

Если у вас массив значений записан строкой через запятую, то и выбирать надо по соответствию строке.

Если массив в разном порядке, то заранее сортируйте элементы строки.

Также есть логические операторы:

$arFilter = Array(
    ...
    "LOGIC"=>"AND",
    "%=PROPERTY_DETALIN_KODU_VALUE"=>$strcode[0],
    "%=PROPERTY_DETALIN_KODU_VALUE"=>$strcode[1], 
    "%=PROPERTY_DETALIN_KODU_VALUE"=>$strcode[2],
),
→ Ссылка