Invalid argument supplied for foreach...

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

  • Invalid argument supplied for foreach...

    Ich versuche seit einer gefühlten Ewigkeit eine Archivfunktion zu programmieren. Diese soll das Postdatum eines jeden Blogposts auslesen, in ein solches Array schreiben und schließlich auf folgende Weise ausgeben:


    2009
    August (postanzahl)
    March (postanzahl)
    2008
    February (postanzahl)
    ... usw.

    Bis auf die Ausgabe funktioniert auch alles. Falls ich hier einen groben Fehler begehe, macht mich bitte darauf aufmerksam.

    Vielleicht hab ich auch einfach ein Brett vor dem Kopf, weil ich mich schon so lange damit beschäftige, aber könnte mir vielleicht jemand sagen, warum dies hier die Fehlermeldung "Invalid argument supplied for foreach..." beschert?

    PHP-Code:
        $archive = array(
            
    "2007" => Array (
                
    "August" => 1,
                
    "December" => 1),

            
    "2008" => Array (
                
    "October" => 1,
                
    "December" => 1),

            
    "2009" => Array (
                
    "January" => 1,
                
    "April" => 1,
                
    "August" => 1)
        );

        foreach(
    $archive as $year => $month){

            echo 
    $year.'<br />';

            foreach(
    $year as $month => $day){

                echo 
    ' - '.$month.' ('.$day.')<br />';

            }

        } 

    1. Ja, ich habe die entsprechenden Einträge im Manual gelesen. Google habe ich auch benutzt. Das mache ich immer zuerst, wenn ich eine Frage habe, denn ich habe zu Glück das selbstständige Denken gelernt, sonst würde ich nicht fragen
    2. Ja, ich besitze den erstzunehmenden Ehrgeiz, die Dinge, nach denen ich frage, auch zu begreifen und/oder begreifen zu lernen, sonst würde ich nicht fragen


  • #2
    Hallo,

    foreach ($year ...) ist das Problem, da du in der übergeordneten foreach-schleife $year als Key und $month als Wert deklariert hast. Also müsste es hier foreach ($month ...) heißen.

    Gruß,

    Anja
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Und jedesmal das gleiche Theater... Ich arbeite stundenlang an etwas, suche Fehler, schreibe mir in der Googlesuche die Finger wund und wenn ich dann meine Frage poste, fällt es mit wie Schuppen von den Augen:

      PHP-Code:
      foreach($archive as $year => $month){

          echo 
      $year.'<br />';

          foreach(
      $archive[$year] as $month => $day){

              echo 
      ' - '.$month.' ('.$day.')<br />';

          }



      die zweite foreach Schleife erwartet natürlich AUCH ein Array... Ich hoffe, es hilft wenigstens noch jemand anderem, außer mir.

      1. Ja, ich habe die entsprechenden Einträge im Manual gelesen. Google habe ich auch benutzt. Das mache ich immer zuerst, wenn ich eine Frage habe, denn ich habe zu Glück das selbstständige Denken gelernt, sonst würde ich nicht fragen
      2. Ja, ich besitze den erstzunehmenden Ehrgeiz, die Dinge, nach denen ich frage, auch zu begreifen und/oder begreifen zu lernen, sonst würde ich nicht fragen

      Kommentar


      • #4
        Zitat von AmicaNoctis Beitrag anzeigen
        Hallo,

        foreach ($year ...) ist das Problem, da du in der übergeordneten foreach-schleife $year als Key und $month als Wert deklariert hast. Also müsste es hier foreach ($month ...) heißen.

        Gruß,

        Anja
        Das habe ich leider zu spät bemerkt. Trotzdem danke für Deine Antwort, Anja.

        1. Ja, ich habe die entsprechenden Einträge im Manual gelesen. Google habe ich auch benutzt. Das mache ich immer zuerst, wenn ich eine Frage habe, denn ich habe zu Glück das selbstständige Denken gelernt, sonst würde ich nicht fragen
        2. Ja, ich besitze den erstzunehmenden Ehrgeiz, die Dinge, nach denen ich frage, auch zu begreifen und/oder begreifen zu lernen, sonst würde ich nicht fragen

        Kommentar

        Lädt...
        X