arrays mit bedingung auslesen

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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
    Last edited by AmicaNoctis; 15-01-2010, 00: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]

    Comment


    • #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".

      Comment


      • #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!

        Comment


        • #5
          Originally posted by Tarlar View Post
          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]

          Comment


          • #6
            hat geklappt, danke, leute!

            Comment

            Working...
            X