Добрый вечер всем битриксерам.
Проблема у меня маленькая, но я уже битый час бьюсь с ней и никак не могу понять, почему цикл не работает так, как я этого хочу.
Вкратце описываю проблему:
В инфоблоке 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 )
Это же несложно для продвинутых проггеров. Прошу помогите! Спасибо!