Нашел следующее решение и немного преобразовал его для своего проекта. Возможно пригодится кому-то еще ))
$arFilter = Array('IBLOCK_ID'=>2, 'GLOBAL_ACTIVE'=>'Y');
$by="SORT";$order="ASC";
$by2="left_margin";$order2="ASC";
$by3="name";$order2="ASC";
$res = CIBlockSection::GetList(Array($by2=>$order2,$by=>$order), $arFilter, true, array('ID','NAME','IBLOCK_SECTION_ID','SECTION_PAGE_URL'));
$arr=array();
while($ar = $res->GetNext()){
$arr[]=$ar;
}
$arrTree = array();
$sectionLink = array();
$sectionLink[0] = &$arrTree;
foreach ($arr as $ar){
$sectionLink[intval($ar['IBLOCK_SECTION_ID'])]['CHILD'][$ar['ID']] = $ar;
$sectionLink[$ar['ID']] = &$sectionLink[intval($ar['IBLOCK_SECTION_ID'])]['CHILD'][$ar['ID']];
}
$arr=$arrTree['CHILD'];
$arResult['TREE']=$arrTree['CHILD'];
unset($sectionLink);
unset($arrTree);
|