У меня есть два ИБ
Видео
Категории
У инфоблока Видео есть связанный элемент CAT который ссылается на разделы Категории и является множественным. Когда я просматриваю отдельное видео я загружаю инфу вот так:
Код |
---|
$arSelect = Array("ID", "NAME", "PREVIEW_TEXT", "PROPERTY_YOUTUBE", "PROPERTY_USER", "PROPERTY_COUNTER", "PROPERTY_CAT");
$arFilter = Array("IBLOCK_ID"=>"11", "ACTIVE_DATE"=>"Y", "ACTIVE"=>"Y", "ID"=>$_GET['id']);
$res = CIBlockElement::GetList(Array(), $arFilter, false, Array("nPageSize"=>50), $arSelect);
while($ob = $res->GetNextElement())
{
$arFields = $ob->GetFields();
//print "<pre>";print_r($arFields);print "</pre>";
} |
Дальше в
Код |
---|
print_r($arFields['PROPERTY_CAT_VALUE']);
|
я получаю массив
Код |
---|
Array ( [0] => 17 [1] => 21 )
|
ВОПРОС: можно ли сразу как то вывести название категорий?
Как я сейчас решил сделать. Перебираю в цикле элементы массива:
Код |
---|
foreach ($arFields['PROPERTY_CAT_VALUE'] as $cat) {
} |
и уже внутри цикла получаю названия по айди:
Код |
---|
foreach ($arFields['PROPERTY_CAT_VALUE'] as $cat) {
$res = CIBlockSection::GetByID($cat);
if($ar_res = $res->GetNext())
echo $ar_res['NAME'];
} |
ВОПРОС: на сколько это правильно пихать все в цикл? Может есть более элегантный способ сразу изначально получить массив не айди а имен?