$arFilter = array('IBLOCK_ID' => 1, 'ACTIVE' => 'Y');
$arSelect = array('IBLOCK_ID', 'ID', 'NAME', 'SECTION_PAGE_URL', 'DETAIL_PICTURE', 'DEPTH_LEVEL', 'IBLOCK_SECTION_ID');
$rsSect = CIBlockSection::GetList(
array("DEPTH_LEVEL" => "ASC"), /* <b>если это изменение приведёт к тому, что в цикл попадут сначала разделы 1 уровня, затем второго уровня и затем 3 уровня, то цикл while менять не нужно</b>*/
$arFilter, //фильтр (выше объявили)
false, //выводить количество элементов - нет
$arSelect //выборка вывода, нам нужно только название, описание, картинка
);
$sections = array();
while ($arSect = $rsSect->GetNext()) {
//echo '<pre>'; print_r($arSect); '</pre>';
$sections[] = $arSect;
}
foreach($sections as $arSect):
if ($arSect['DEPTH_LEVEL'] == 1) {
$newSection[$arSect['ID']] = $arSect;
$sectionLvlOne = $arSect['ID'];
}
endforeach;
foreach($sections as $arSect):
if ($arSect['DEPTH_LEVEL'] == 2) {
$newSection[$sectionLvlOne]['SECOND_LVL'][$arSect['ID']] = $arSect;
$sectionLvlTwo = $arSect['ID'];
}
endforeach;
foreach($sections as $arSect):
if ($arSect['DEPTH_LEVEL'] == 3) {
$newSection[$sectionLvlOne]['SECOND_LVL'][$sectionLvlTwo]['THIRD_LVL'][$arSect['ID']] = $arSect;
$sectionLvlThree = $arSect['ID'];
}
endforeach;
$arResult['NEW_SECTIONS'] = $newSection;
if (isset($arItem["PROPERTIES"]["TestProp"]["VALUE"]) && is_array($arItem["PROPERTIES"]["TestProp"]["VALUE"]) && count($arItem["PROPERTIES"]["TestProp"]["VALUE"]))
<?php echo "<pre>";print_r($arItem["PROPERTIES"]["TestProp"]["VALUE"]); echo "</pre>";