Natascha: Variabeln-Werte sind weg!

Hallo,

ich lasse mein Array

$submenu[fotoalbum]= array(
"index.php" => "Foto-Übersicht",
"grusskarte.php" => "Grusskarte"
);

mit

for($x=1;$x<sizeof(submenu[fotoalbum]);$x++)
{
echo key($menu);
echo current($menu);
}

ausgeben.
Wenn ich dann weiter unten auf der Seite das Array nochmal ausgeben will, sind die Werte weg und es wird nichts augegeben ... wer kann mir sagen, wie ich das machen muss, damit ich mein Array $submenu[fotoalbum] sooft ich möchte augeben kann..

GLG, Natascha

  1. Hallo,

    ich lasse mein Array

    $submenu[fotoalbum]= array(
    "index.php" => "Foto-Übersicht",
    "grusskarte.php" => "Grusskarte"
    );

    mit

    for($x=1;$x<sizeof(submenu[fotoalbum]);$x++)
    {
    echo key($menu);
    echo current($menu);
    }

    Hi,

    du hast da mehrere fehler drin.

    Für was verwendest eine for schleife wenn du keinen index hast ?

    und bei submenu[fotoalbum] hast das $ vergessen.

    versuchs mal so:

    while(list($key,$val)=each($submenu[fotoalbum])){
     echo $key;
     echo $val;
    }

    lg
    Ludwig

    1. habe d'ehre Ludwig,

      alter Wiener.

      Da faellt mir doch gerade ein: In Muenchen war Systems und Ludwig offenbar nicht da. ??

      carpe diem
      Wilhelm

  2. Hallo,

    $submenu[fotoalbum]

    Das ist falsch.
    Richtig waere:
    submenu['fotoalbum'];

    Lies:
    Warum ist $foo[bar] falsch?
    http://www.php.net/manual/de/language.types.array.php#language.types.array.foo-bar
    Ausnahme: Innerhalb von doppelten Anfuehrungszeichen. "$foo[bar]" ist erlaubt:
    http://www.php.net/manual/en/language.types.array.php#AEN3791

    for($x=1;$x<sizeof(submenu[fotoalbum]);$x++)

    ^^^
    1. Da fehlt das $.
    2. Gleicher Fehler wie oben.

    Wenn ich dann weiter unten auf der Seite das Array nochmal ausgeben will, sind die Werte weg und es wird nichts augegeben ... wer kann mir sagen, wie ich das machen muss, damit ich mein Array $submenu[fotoalbum] sooft ich möchte augeben kann..

    Vielleicht ist einfach der Zeiger am Ende des Arrays.
    Verwende reset()
    http://www.php.net/manual/de/function.reset.php

    Auch sehr praktisch ist foreach()
    http://www.php.net/manual/de/control-structures.foreach.php
    Da musst Du nicht einmal reset() brauchen.

    Gruesse,

    Thomas

  3. Huhu Natascha

    Wenn ich dann weiter unten auf der Seite das Array nochmal ausgeben will, sind die Werte weg und es wird nichts augegeben ...

    wenn Du beim 2ten Mal ebenfalls die Variante mit current()
    benutzen willst musst Du das Array (genauer den Elementzeiger) zuvor "zurückspulen".

    http://de3.php.net/manual/en/function.reset.php

    viel einfacher finde ich die Variante mit foreach

    z.B.

    foreach ($MyArray as $key => $value) {

    printf ('%s ist der Schlüssel zu %s <br>',$key,$value);
    }

    Viele Grüße

    lulu

    --
    bythewaythewebsuxgoofflineandenjoytheday