2013-08-01 3 views
1

Мне нужна небольшая помощь с рекурсивным выпадающим меню.Рекурсивное меню, пишите все родители и дети

Вот мой массив:

Array 
(
    [0] => Array 
     (
      [cat_id] => 4 
      [cat_name] => Plátna 
      [cat_nodia] => Platna 
      [cat_child] => 0 
      [cat_desc] => 
      [cat_main] => 1 
      [cat_order] => 4 
      [parent] => 
      [sub] => Array 
       (
        [0] => Array 
         (
          [cat_id] => 16 
          [cat_name] => Ľanové 
          [cat_nodia] => Lanove 
          [cat_child] => 4 
          [cat_desc] => 
          [cat_main] => 0 
          [cat_order] => 16 
          [parent] => Ľanové 
          [sub] => 
         ) 

        [1] => Array 
         (
          [cat_id] => 17 
          [cat_name] => Bavlnené 
          [cat_nodia] => Bavlnene 
          [cat_child] => 4 
          [cat_desc] => 
          [cat_main] => 0 
          [cat_order] => 17 
          [parent] => Bavlnené 
          [sub] => Array 
           (
            [0] => Array 
             (
              [cat_id] => 21 
              [cat_name] => 10x10 
              [cat_nodia] => 10x10 
              [cat_child] => 17 
              [cat_desc] => 
              [cat_main] => 0 
              [cat_order] => 21 
              [parent] => 10x10 
              [sub] => 
             ) 

            [1] => Array 
             (
              [cat_id] => 22 
              [cat_name] => 20x25 
              [cat_nodia] => 20x25 
              [cat_child] => 17 
              [cat_desc] => 
              [cat_main] => 0 
              [cat_order] => 22 
              [parent] => 20x25 
              [sub] => 
             ) 

           ) 

         ) 

       ) 

     ) 

    [1] => Array 
     (
      [cat_id] => 5 
      [cat_name] => Uhlík 
      [cat_nodia] => Uhlik 
      [cat_child] => 0 
      [cat_desc] => 
      [cat_main] => 0 
      [cat_order] => 5 
      [parent] => 
      [sub] => 
     ) 
) 

И я хотел бы сделать выпадающее меню, которое будет выглядеть следующим образом:

Platna 
Platna - Lanove 
Platna - Bavlnene 
Platna - Bavlnene - 10x10 
Platna - Bavlnene - 20x25 
Uhlik 

Вот что я пытался до сих пор:

function show_menu($array) 
    { 
    // print_r($array); 
     foreach($array as $val) 
     { 
      if (is_array($val['sub'])) 
      { 
       echo $val['cat_name']; 
       $this->show_menu($val['sub']); 
      } else 
      { 
       echo $val['cat_name']; 
      } 
      echo "<br>"; 
     } 
    } 

Который дает мне smh вот так:

Plátna Ľanové 
Bavlnené 10x10 
20x25 

Спасибо за любую помощь

+0

Я думаю, что это поможет. http://wizardinternetsolutions.com/articles/web-programming/single-query-dynamic-multi-level-menu – Moylin

+0

Какой желаемый результат? – Baba

+0

Я упомянул его между кодами – DeiForm

ответ

1

попробовать это

function show_menu($array, $name='') 
    { 
    // print_r($array); 
     foreach($array as $val) 
     { 
      echo $name . $val['cat_name'] . "<br>"; 
      if (is_array($val['sub'])) 
      { 
       $this->show_menu($val['sub'], $name . $val['cat_name'] . ' - '); 
      } 
     } 
    } 
+0

Работаю, но вам не хватает '' 'сначала эхо. :) Спасибо – DeiForm

Смежные вопросы