Помощь с рекурсией или как вывести меню?

Вообщем. Еле-еле собрал меню в массив

array (
  1 => 
  array (
    'id_menu' => '1',
    'parent' => '0',
    'name_uk' => 'Тестовое меню',
    'childs' => 
    array (
      5 => 
      array (
        'id_menu' => '5',
        'parent' => '1',
        'name_uk' => 'Пункт',
        'childs' => 
        array (
          6 => 
          array (
            'id_menu' => '6',
            'parent' => '5',
            'name_uk' => 'Пункт2',
          ),
          7 => 
          array (
            'id_menu' => '7',
            'parent' => '5',
            'name_uk' => 'Пункт3',
            'childs' => 
            array (
              8 => 
              array (
                'id_menu' => '8',
                'parent' => '7',
                'name_uk' => 'Пункт4',
              ),
            ),
          ),
        ),
      ),
    ),
  ),
  3 => 
  array (
    'id_menu' => '3',
    'parent' => '0',
    'name_uk' => 'Тестовое меню 2',
  ),
  4 => 
  array (
    'id_menu' => '4',
    'parent' => '0',
    'name_uk' => 'Тестовое меню 33',
  ),
)


как его аккуратно вывести в разметке?
Целый день пытаюсь, но у меня это меню в глубь уходит
бошка не варит уже. подкиньте скриптик
  • Вопрос задан
  • 118 просмотров
Пригласить эксперта
Ответы на вопрос 3
@Sushkov
">alert("yohoho")
Передай массив в parse
function parse($a){
foreach($a as $key => $value){
	//print_r($value);
	echo $value['name_uk']."<br>";
	if(isset($value['childs'])){
		parse($value['childs']);
	}
}}
Ответ написан
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
тут целый урок, примерно то что вам нужно я думаю.
Ответ написан
Комментировать
Immortal_pony
@Immortal_pony Куратор тега PHP
function renderMenu($menu) {
    $html = "<ul>";
	
    foreach ($menu as $element) {
        $html .= "<li>{$element['name_uk']}</li>";
    	
        if (!empty($element['childs'])) {
            $html .= renderMenu($element['childs']);
        }
    }
	
    $html .= "</ul>";
	
    return $html;
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы