[php] Mehrdimensionales Array

quicksilver

Lt. Junior Grade
Registriert
Jan. 2004
Beiträge
363
Hallo ich habe vor in mein Menü ein bissel mehr dynamische fähigkeiten reinzubringen. Aber leider scheitert es bei mir an dem Mehrdimensionalen und einem Aufbau der vernünftigen Schleife. Ich zeige euch mal wie mein Menü im Moment ausieht.

PHP:
// sms
if ($_SESSION["user_sms"] == 1) 
{
if ($menue['sms'] == 1)
{?>
<li class="menu1"><a href="#" onclick="swap_content('menu_sms'); return false;" onfocus="if(this.blur)this.blur()">Sms</a></li>
<span id="menu_sms" style="display: none;">
<li class="menu2"><a href="?view=sms&action=add&menu=menu_sms" onfocus="if(this.blur)this.blur()">Sms Senden</a></li>
<li class="menu2"><a href="?view=sms&action=list&menu=menu_sms" onfocus="if(this.blur)this.blur()">Sms In / Out</a></li>
</span>
<?php }
}

// Links 
if ($_SESSION["user_links"] == 1) 
{
if ($menue['links'] == 1)
{?>
<li class="menu1"><a href="#" onclick="swap_content('menu_links'); return false;" onfocus="if(this.blur)this.blur()">Links</a></li>
<span id="menu_links" style="display: none;">
<li class="menu2"><a href="?view=links&action=add&menu=menu_links" onfocus="if(this.blur)this.blur()">Links Add</a></li>
<li class="menu2"><a href="?view=links&action=list&menu=menu_links" onfocus="if(this.blur)this.blur()">Links Edit / Del</a></li>
</span>
<?php }
}

So das sind 2 Menüpunkte. Und ich wollte das ganze nun "einfach" per Array erweitern so das ich nicht immer den code Anpassen muss.

Ich weiss leider nun nicht wie ich das umsetzen könnte das ich z.b. So in der Art einfach ein Array erweitere und das "menü" automatisch erstellt wird per foreach oder so

PHP:
$menu = array(
        "Sms" => "Senden" => "view=sms&action=add&menu=menu_sms",
        "Sms" => "In / Out" => "view=sms&action=list&menu=menu_sms",
    );
Irgendwo müsste auch noch die information hin für das swap_content z.b. menu_sms
Kann mir da wer helfen?
Danke
 
Zuletzt bearbeitet von einem Moderator: ([code] -> [php])
PHP:
 $menu = array(
        "Sms" => array(
                "Senden" => "view=sms&action=add&menu=menu_sms"
                ),
        "Sms" => array(
                "In / Out" => "view=sms&action=list&menu=menu_sms"
                )
    );
nun kannst du in einer doppelten foreach-schleife den Array auseinandernehmen.

Edit: weil mir gerade langweilig ist ...:
PHP:
foreach($menu as $kategorieName => $kategorieArray) {
  if( !empty($_SESSION['user_' . strToLower($kategorieName)]) && !empty(strToLower($kategorieName)]) ) {
    ?>
<li class="menu1"><a href="#" onclick="swap_content('menu_links'); return false;" onfocus="if(this.blur)this.blur()"><?= $kategorieName?></a></li>
<span id="menu_links" style="display: none;">
    <?php
    foreach($kategorieArray as $elementName => $elementURL) {
    ?>

<li class="menu2"><a href="<?= $elementURL?>" onfocus="if(this.blur)this.blur()"><?= $kategorieName?> <?=$elementName?></a></li>

    <?php
    }  // Ende Foreach
    ?>
<li class="menu2"><a href="?view=links&action=list&menu=menu_links"
</span>
    <?php
  } // Ende If
} // Ende Foreach
?>
 
Zuletzt bearbeitet: (Tippfehler)
Hm inwiefern in einer doppelten? Weil es ist ja so das SMS sagen wir mal der überbegriff ist. Und dann würde es ja doppelt ausgegeben? Und wo speichere ich am besten noch den wert für das swap_content z.b. menu_sms
 
Zurück
Oben