Добрый вечер всем битриксерам.
Проблема у меня маленькая, но я уже битый час бьюсь с ней и никак не могу понять, почему цикл не работает так, как я этого хочу.
Вкратце описываю проблему:
В инфоблоке 1 у меня есть разделы - города, в котором есть элементы - отели.
В инфоблоке 5 у меня есть разделы - города (привязаны к разделам 1 инфоблока свойством UF-ATTACH) и элементы, которые содержат фотографии отелей внутри себя свойством "Файл".
Задача: Сделать так, чтоб при показе фотогалереи города (ЧПУ включен) код нашел раздел нужного города в другом инфоблоке и вытащил из него ID элементов в котором фотки.
Проблема: сделать цикл, который сработает столько раз, сколько элементов в конечной выборке и присвоит на каждом цикле по очереди ID элемента переменной.
// достаю ID раздела по его коду.
// теперь надо в другом инфоблоке найти раздел который привязан к первому через пользователькое своство UF_ATTACH.
//теперь надо сделать выборку элементов этого раздела, ID который мы нашли:
//сейчас массив print_r() выдает такой какой мне нужен: Array ( [ID] => 203 ) Array ( [ID] => 204 )
//а вот и цикл, который у меня не получается сделать правильно. мне надо, чтоб цикл перебрал массив $arNeed и сработал столько раз, сколько элементов в массиве.
//суть того, что там еще одно присвоение значения, не велика. мне важно просто чтоб цикл был совершен столько раз, сколько элементов в массиве, сохранив в массиве значения ID элементов.
После этого цикла у меня print_r() выдает Array ( [0] => 204 )
Это же несложно для продвинутых проггеров. Прошу помогите! Спасибо!
Проблема у меня маленькая, но я уже битый час бьюсь с ней и никак не могу понять, почему цикл не работает так, как я этого хочу.
Вкратце описываю проблему:
В инфоблоке 1 у меня есть разделы - города, в котором есть элементы - отели.
В инфоблоке 5 у меня есть разделы - города (привязаны к разделам 1 инфоблока свойством UF-ATTACH) и элементы, которые содержат фотографии отелей внутри себя свойством "Файл".
Задача: Сделать так, чтоб при показе фотогалереи города (ЧПУ включен) код нашел раздел нужного города в другом инфоблоке и вытащил из него ID элементов в котором фотки.
Проблема: сделать цикл, который сработает столько раз, сколько элементов в конечной выборке и присвоит на каждом цикле по очереди ID элемента переменной.
Код |
---|
<? if(CModule::IncludeModule("iblock"): $arCode=$_REQUEST["CODE"]; //запрашиваю код раздела инфоблока. |
// достаю ID раздела по его коду.
Код |
---|
$arFilterA = Array('IBLOCK_ID'=>1, 'GLOBAL_ACTIVE'=>'Y', 'CODE'=>$arCode); $resA = CIBlockSection::GetList(Array(), $arFilterA, true); while($arSect = $resA->GetNext()) { $arSectID = $arSect["ID"]; } |
// теперь надо в другом инфоблоке найти раздел который привязан к первому через пользователькое своство UF_ATTACH.
Код |
---|
$IB_ID=5;//айди инфоблока $arFilterB = array( "IBLOCK_ID" => $IB_ID, "UF_ATTACH" =>$arSectID); $resB = CIBlockSection::GetList(Array(), $arFilterB, true); while($arRes = $resB->GetNext()) { $arSectPhoto = $arRes["ID"]; // нашел, парсю в массив. } |
//теперь надо сделать выборку элементов этого раздела, ID который мы нашли:
Код |
---|
$arFilterC = array( "IBLOCK_ID" => $IB_ID, "SECTION_ID" =>$arSectPhoto); $rsItems = CIBlockElement::GetList(Array("SORT" => "ASC", $arFilterC, false, false, Array()); while($arRes = $rsItems->GetNext()) { $arNeed["ID"] = $arRes["ID"]; } |
//сейчас массив print_r() выдает такой какой мне нужен: Array ( [ID] => 203 ) Array ( [ID] => 204 )
//а вот и цикл, который у меня не получается сделать правильно. мне надо, чтоб цикл перебрал массив $arNeed и сработал столько раз, сколько элементов в массиве.
//суть того, что там еще одно присвоение значения, не велика. мне важно просто чтоб цикл был совершен столько раз, сколько элементов в массиве, сохранив в массиве значения ID элементов.
Код |
---|
foreach ($arNeed as $arAlbum) { $album[] = $arAlbum; } print_r ($album); endif; ?> |
После этого цикла у меня print_r() выдает Array ( [0] => 204 )
Это же несложно для продвинутых проггеров. Прошу помогите! Спасибо!