Array Zuweisungen

bertiSR

Mitglied
Hallo ich steh gerade iregndwie auf dem Schlauch und komm nicht mehr weiter.

Ich habe folgenden Code.
PHP:
<?php

    $Kategorien = array('Hauptmenü', 'Shortcut');

    $Hauptmenu  = array('Startseite' => 'index.php',
                        'News'       => 'news.php');

    $Shortcut   = array('Home'       => 'index.php',
                        'Blog'       => 'news.php');

    print "<pre>\n";
    print_r($Kategorien);
    print "</pre>\n";

    print "<pre>\n";
    print_r($Hauptmenu);
    print "</pre>\n";

    print "<pre>\n";
    print_r($Shortcut);
    print "</pre>\n";

?>

Ich will daraus ein kleines Menü erstellen, das wie folgt aufgebaut sein soll.
HTML:
Hauptmenu
  Startseite => 'index.php'
  News => 'news.php'
Shortcut
  Home => 'index.php'
  Blog => 'news.php'

Das ganze will ich dann natürlich in Listen verpacken. Nur hab ich gerade überhaupt keinen Plan, wie ich das mit einer foreach-Zuweisung machen soll...

Ich hatte es so versucht, aber da wurden die Werte (Links) falsch zugewiesen:
PHP:
<?php

    foreach ($Kategorien as $v)
    {
        print "<ul>\n";
        print "  <li><b>". $v ."</b></li>";
        foreach ($Hauptmenu as $name => $link)
        {
            print "  <li><a href=\"". $link ."\">". $name ."</a></li>\n";
        }
        print "</ul>\n";
    }

?>
 
Zuletzt bearbeitet:
PHP:
foreach ($Kategorien as $v)
    {
        print "<ul>\n";
        print "  <li><b>". $v ."</b></li>";
        foreach (${$v} as $name => $link)
        {
            print "  <li><a href=\"". $link ."\">". $name ."</a></li>\n";
        }
        print "</ul>\n";
    }
Das sollte funktionieren.
Allerdings müssen dann die Einträge in $Hauptmenu mit den anderen Arraynamen übereinstimmen! (Sprich $Hauptmenu darf nicht Hauptmenü sein in $Kategorien).
 
Hallo, dnake für die schnelle Antwort.

Ich habe es jetzt gemacht, wie folgt:
PHP:
<?php

    $Hauptmenu  = array('Startseite' => 'startseite.php',
                        'News'       => 'news.php');

    $Shortcut   = array('Home'       => 'home.php',
                        'Blog'       => 'blog.php');

    $Benutzer   = array('Übersicht'  => 'uebersicht.php',
                        'Logout'     => 'logout.php');

    $Kategorien = array('Hauptmenü'    => $Hauptmenu,
                        'Shortcut'     => $Shortcut,
                        'Benutzermenü' => $Benutzer);

    foreach ($Kategorien as $v1 => $v2)
    {
        print "<ul>\n";
        print "  <li><b>". $v1 ."</b></li>\n";
        foreach ($v2 as $name => $link)
        {
            print "  <li><a href=\"". $link ."\">". $name ."</a></li>\n";;
        }
        print "</ul>\n\n";
    }

    $smarty->assign('Menu', $Kategorien);

?>

Kannst du mir auch noch sagen, wie ich das ganze in ein Smarty Template bekomme.
Also praktisch mit {foreach}{/foreach}

Mein Versuch war wie folgt - der Versuch scheiterte.
HTML:
{foreach from=$Menu key=v1 item=v2}
    <ul>
      <li><b>{$v1}</b></li>
      {foreach from=$v2 key=name item=link}
          <li><a href="{$link}">{$name}</a></li>
      {/foreach}
    </ul>
{/foreach}
 
Zuletzt bearbeitet:
Zurück