arrays mit bedingung auslesen

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

  • arrays mit bedingung auslesen

    hi leute!

    habe ein problem mit php und komme einfach nicht auf die lösung... hoffe mir kann jemand helfen!
    ich habe einen array ($workGallery) in dem mehrere arrays liegen.
    ich gebe alles aus mit:

    PHP-Code:
    foreach ($workGallery as $item
    das klappt auch alles.

    jetzt will ich aber das ganze einschränken und z.b. nur die einträge anzeigen, die z.b. "KATEGORIE" => "Website" haben.
    ich vermute, dass das irgendwie mit einer for-schleife geht - nur wie??

    grüße

  • #2
    Hallo,

    im foreach-Schleifenkopf selbst kann man nicht filtern, aber du kannst im Schleifenkörper mit if ... else Bedingungen notieren. Hilfreich könnten in diesem Zusammenhang auch die Schlüsselworte break und continue sein. Außerdem solltest du dir im Handbuch zu foreach nochmal die zweite Variante ansehen, bei der du Schlüssel und Wert binden kannst:
    PHP-Code:
    foreach ($array as $key => $value
    Vielleicht meinst du das ja. Mehr kann ich aus deinen spärlichen Informationen auch nicht erraten.

    Gruß,

    Amica
    Zuletzt geändert von AmicaNoctis; 15.01.2010, 01:37.
    [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
      So wie ich das verstanden habe, handelt es sich um ein dimensionales Array.

      Wenn das Array so aufgebaut ist:

      PHP-Code:
      $workGallery = array("KATEGORIE" => array("Webseite""Homepage""User"),
                           
      "Index2" => array("xyz""abc""def")); 
      Dann könntest du das ganze auch so ausgeben:

      PHP-Code:
      foreach($workGallery["KATEGORIE"] as $item
      Dann werden nur die Elemente aus dem Unterarray "KATEGORIE" ausgegeben, sprich "Webseite", "Homepage" und "User".

      Kommentar


      • #4
        das könnte auch funktionieren:

        ich nehme einfach mal an, dass dein array in etwa so aussieht:
        PHP-Code:
        $workGallery = array(
            
        'eintrag1' => array(
                
        'KATEGORIE' => 'Webseite',
                
        'andererWert' => 'value'
            
        ),
            
        'eintrag2' => array(
                
        'KATEGORIE' => 'zweiteKategorie',
                
        'andererWert' => 'value2'
            
        )
            
        // noch mehr einträge
        ); 
        um jetzt nur Einträge zu bekommen, die die Kategorie "Webseite" haben, machst du folgendes:
        PHP-Code:
        $nurWebseite = array();
        foreach(
        $workGallery as $eintrag)
        {
            if(
        $eintrag['KATEGORIE'] == 'Webseite')
            {
                
        array_push($nurWebseite$eintrag);
                
        // oder auch möglich:
                // $nurWebseite[] = $eintrag;
            
        }

        wenn du jetzt
        PHP-Code:
        echo "<pre>";
        var_dump($nurWebseite);
        echo 
        "</pre>"
        machst, wirst du sehen, dass wirklich nur Einträge mit der Kategorie "Webseite" drin sind.
        var_dump und print_r ist übrigens immer dein Freund, wenns um komplizierte Array-Strukturen geht - damit verlierst nicht so leicht den überblick!

        Kommentar


        • #5
          Zitat von Tarlar Beitrag anzeigen
          So wie ich das verstanden habe, handelt es sich um ein dimensionales Array.
          Ich will ja nicht übertreiben, aber ich habe sogar verstanden, dass es ein multidimensionales ist.

          SCNR
          [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


          • #6
            hat geklappt, danke, leute!

            Kommentar

            Lädt...
            X