<? foreach($arResult["ITEMS"] as $arItem){ if($SID = $arItem["IBLOCK_SECTION_ID"]){ $arSectionsIDs[] = $SID; } } if($arSectionsIDs){ $arResult["SECTIONS"] = CCache::CIBLockSection_GetList(array("SORT" => "ASC", "NAME" => "ASC", "CACHE" => array("TAG" => CCache::GetIBlockCacheTag($arParams["IBLOCK_ID"]), "GROUP" => array("ID"), "MULTI" => "N")), array("ID" => $arSectionsIDs)); } // group elements by sections foreach($arResult["ITEMS"] as $arItem){ $SID = ($arItem["IBLOCK_SECTION_ID"] ? $arItem["IBLOCK_SECTION_ID"] : 0); $arResult["SECTIONS"][$SID]["ITEMS"][$arItem["ID"]] = $arItem; } // unset empty sections foreach($arResult["SECTIONS"] as $i => $arSection){ if(!$arSection["ITEMS"]){ unset($arResult["SECTIONS"][$i]); } } ?>