Ingo Turski: Verschachtelte Liste mit php erzeugen

Beitrag lesen

Hi,
zunächst mal würde ich empfehlen, das Menü in ein zweidimensionales Array einzulesen (hierzu finde ich die Art der Speicherung in der Datenbank allerdings unpraktisch.
Ich habe z.B. auf einer Seite ein solches Array $nav mit den erforderlichen Angaben zur Navigation. Zusätzlich habe ich vorab noch ein Array $subnav mit der hieraus berechneten Anzahl der Untermenüpunkte  angelegt. Der Code sieht dann - vereinfacht - so aus:

$menu = '  <ul>'.$cr;  
for($i=0; $i<count($nav); $i++) {  
  $menu .= '    <li><a href="'.$nav[$i][1].'">'.$nav[$i][2].'</a>';  
  if($subnav[$i]) {  
    $menu .= '<ul>'.$cr;  
    for($ii=0; $ii<$subnav[$i]; $ii++) {  
      $menu .= '      <li><a href="'.$nav[$i][$ii+$navinfo][1].'">'.$nav[$i][$ii+$navinfo][2].'</a></li>'.$cr;  
    }  
    $menu .= '    </ul>';  
  }  
  $menu .= '</li>'.$cr;  
}  
$menu .= '  </ul>'.$cr;

freundliche Grüße
Ingo