wieder mal ein Problem :)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • wieder mal ein Problem :)

    Hi Mädels
    wie ich gestern schon gesagt habe, bin ich Anfänger und habe jetzt das nächste Problem...
    Hab ne halbe Stunde rumgeguckt aber ich habe echt keine Ahnung was ich da machen soll...

    Folgender fehler wird ausgegeben:
    Code:
    Variable passed to each() is not an array or object on line [b]83[/b]
    Und das ist mein Code
    Code:
    $hauptstadt = array(
     "Europa" => array(
      	"Deutschland" => "Berlin",
      	"England" => "London",
    	"Spanien" => "Madrid",
      	"Frankreich" => "Paris"),
     "Amerika" => array(
        "USA" => "Washington",
        "Canada" => "Otawa",
        "Mexico" => "Mexico City")
      );
    
    asort($hauptstadt);
      
    echo "<BR>";
    echo "<BR>";
    
    while (list($kontinent)= each($hauptstadt));
    {
    echo "<B>".$kontinent."</B>";
    echo "<BR>";
    while (list($land,$stadt)= each($hauptstadt["$kontinent"]))
      {
    echo "Die Hauptstadt von ".$land. " ist ".$stadt;
    echo "<BR>";
      }
    }
    Danke schonmal, und bis zum nächsten Problem

    Gruß
    Gaint

  • #2
    foreach ist schöner
    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
    var_dump(), print_r(), debug_backtrace und echo.
    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

    Kommentar


    • #3
      Original geschrieben von Shurakai
      foreach ist schöner
      also each mit foreach ersetzen? ^^

      Kommentar


      • #4
        ich gehe mal davon aus, das deine Variable $kontinent von oberhalb des Skriptes kommt und gültig ist!

        dann liegt der Fehler wahrscheinlich hier in dieser Zeile

        PHP-Code:
        while (list($land,$stadt)= each($hauptstadt["$kontinent"])) 
        und zwar solltest du die Variable nicht sinnlos in Anführungszeichen setzen. In strings gibt es damit eigentlich keine probs, aber im index macht das vielleicht probleme...

        aber wieso benutzt du kein foreach??

        PHP-Code:
         foreach( $hauptstadt[$kontinent] as $land=>$stadt ) {
            
        // ...

        ist doch um einiges schöner und übersichtlicher!

        Kommentar


        • #5
          Ich korrigiere mich.
          Der Fehler liegt wahrscheinlich in der Schleife in der Schleife!
          PHP-Code:
          while (list($kontinent)= each($hauptstadt));
          {
          echo 
          "<B>".$kontinent."</B>";
          echo 
          "<BR>";
          while (list(
          $land,$stadt)= each($hauptstadt["$kontinent"]))
            {
          echo 
          "Die Hauptstadt von ".$land" ist ".$stadt;
          echo 
          "<BR>";
            }

          du hast in der äußersten Schleife ja bereits deine $hauptstadt zerlegt, da wird der Zugriff auf $hauptstadt[$kontinent] vllt nicht möglich sein...

          Probiers aus!

          Kommentar

          Lädt...
          X