Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Выборка по нескольким ID элементов из инфоблока

00 голосов
3
Всем доброго времени суток!
Раньше реализовывал выборку элементов из инфоблока, отвечающих списку ID таким образом:
Код
<?foreach($arResult[PROPERTIES][producer][VALUE] as $producer):?>

<?
$arSelect = Array("ID","NAME","DETAIL_PAGE_URL");
$arFilter = Array("IBLOCK_ID"=>14, "ID"=> $producer, "ACTIVE"=>"Y",);

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

while($ob = $res->GetNextElement())  
      {
        $arFields = $ob->GetFields(); 
        echo $arFields["NAME"]."<br/>";  
      }
?>
<?endforeach;?>

Вопрос: можно ли реализовать ту же задачу, передав в фильтр массив ID-шек? Чтобы не прогонять весь предыдущий код столько раз, сколько у меня различных ID, по которым я ищу, а сделать что-то наподобие такого:

Код
<?foreach($arResult[PROPERTIES][producer][VALUE] as $producer):?>   
 
<?$arProducer[] = $producer;?> 
 
<?endforeach;?>   
 
....  

$arFilter = Array("IBLOCK_ID"=>14, "ID"=>Array($arProducer), "ACTIVE"=>"Y",);

Читал, что передавать массив в фильтр можно таким образом: $arFilter = array("ID" => Array(1,4,509,10))

Так мы сделать можем, когда точно знаем количество и значения ID, а когда не знаем, как поступить?
спросил 18 Окт, 13 от HailStorm (120 баллов)

3 Ответы

00 голосов
Цитата
sgromkov пишет:
$arFilter = Array("IBLOCK_ID"=>14, "ID"=>Array($arProducer), "ACTIVE"=>"Y",);
Вместо этого пишем
Код
$arFilter = array('IBLOCK_ID' => 14, 'ID' => $arResult[PROPERTIES][producer][VALUE], 'ACTIVE' => 'Y'); 
ответил 09 Ноя, 13 от Pomnep (13,960 баллов)
00 голосов
Цитата
Евгений Жуков пишет:
Цитата
sgromkov пишет:
$arFilter = Array("IBLOCK_ID"=>14, "ID"=>Array($arProducer), "ACTIVE"=>"Y",);
Вместо этого пишем
Код
 $arFilter = array('IBLOCK_ID' => 14, 'ID' => $arResult[PROPERTIES][producer][VALUE], 'ACTIVE' => 'Y');  

Евгений, спасибо за помощь. Сделал как вы посоветовали, и сработало. 
ответил 16 Фев, 14 от HailStorm (120 баллов)
00 голосов
В документации все хорошо описано.
ответил 07 Июнь, 14 от Pomnep (13,960 баллов)

Похожие вопросы

0 голосов
8 ответов
0 голосов
6 ответов
0 голосов
1 ответ
спросил 17 Июль, 13 от Asteria (1,840 баллов)
0 голосов
1 ответ
спросил 11 Июль, 14 от pulse (120 баллов)
0 голосов
3 ответов
спросил 24 Март, 14 от LoVeAndPa (160 баллов)