Почему функция возвращает NULL? Если сделать дамп в функции перед словом return тогда выводится ожидаемый масив, при дампе функции tree_menu() - NULL.
<?
function tree_menu($menu, $parent = 0){
static $key_1 = 0;
static $key_2 = 0;
static $key_3 = 0;
static $key_4 = 0;
static $arResult;
switch($menu[$parent]['DEPTH_LEVEL']) {
case 1:
$key_1++;
$arResult[$key_1]=$menu[$parent];
break;
case 2:
$key_2++;
$arResult[$key_1]['CHILDRENS'][$key_2]=$menu[$parent];
break;
case 3:
$key_3++;
$arResult[$key_1]['CHILDRENS'][$key_2]['CHILDRENS'][$key_3]=$menu[$parent];
break;
case 4:
$key_4++;
$arResult[$key_1]['CHILDRENS'][$key_2]['CHILDRENS'][$key_3]['CHILDRENS'][$key_4]=$menu[$parent];
break;
}
$parent++;
if(empty($menu[$parent])){
return $arResult;
}else{
tree_menu($menu,$parent);
}
}
$a = tree_menu($arResult);
var_dump($a);
?>
Потому что возврат из функции перед var_dump() происходит...
if(empty($menu[$parent])){
return $arResult;
}else{
tree_menu($menu,$parent); // <--- ... вот ТУТ
}
Вы в этой строке забыли return, а функции PHP без return возвращают по-умолчанию null
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники