Ankündigung

Einklappen
Keine Ankündigung bisher.

Wie kann ich bestimmte Daten aus einem Array löschen

Einklappen

Neue Werbung 2019

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Wie kann ich bestimmte Daten aus einem Array löschen

    Hallo,

    ich habe folgendes Array und möchte alle Einträge die mit "0" ausgegeben werden löschen. Wie kann ich das machen? Ich muss dazu sagen das es nur Einträge gibt die entweder eine "1" oder eine "0" zurückgeben und nur die "1"er sind für mich interessant.

    Array ( [15] => 0 [21] => 1 [22] => 0 [16] => 1 [17] => 0 )

    Ein solches Array hätte ich gerne am Ende:
    Array ( [21] => 1 [16] => 1)

    gruss ePole


  • #2
    Bspw. mittels array_filter und einer winzigkleinen Funktion, die einfach nur den Wert des übergebenen Array-Elements zurückgibt (weil 0 schliesslich zu false evaluiert).

    Kommentar


    • #3
      Du, das klingt echt gut, aber ich würde mich über ein kleines Beispiel freuen. Das ist mir einfach zu abstrackt, sorry

      Kommentar


      • #4
        Dann schau ins Handbuch, da hat es Beispiele!


        P.S., ich sehe gerade, es müsste sogar ohne callback-Funktion gehen - laut Dokumenation werden ohne callback-Funktion einfach alle Elemente entfernt, die false als Wahrheitswert haben.

        Kommentar


        • #5
          super, hat funktioniert...danke für den tipp

          print_r(array_filter($array));

          Kommentar


          • #6
            Super!
            Dann noch schnell:
            MfG
            ~Capfly

            Kommentar


            • #7
              Noch eine kurze Frage dann kann ichs als "Erledigt" markieren.

              Mein Script sieht nun so aus:

              PHP-Code:
              $array = >>HIER STEHT DAS ARRAY; 
                
              echo 
              "<br> Ergebnis: <br>";

              $i 0;
              while(
              $i count(array_filter($array)))
                 {
                 echo 
              $array[$i]."<br>";
                 
              $i++;
                 } 
              Mein Array hat laut print_r (array_filter($array)); folgenden Inhalt:

              Array ( [15] => 1 [21] => 1 [16] => 1 )

              Doch wenn ich das script aufrufe bekomme ich zwar die richtige Anzahl an <br> angezeigt (in diesem Fall 3) aber nicht den Inhalt des Textes...seh ich geister? Wo ist denn der Text?

              Kommentar


              • #8
                Was fürn Text? Was steht im Array? ( Gekürzter Überblick bitte )

                Übrigens, ich empfehle dir in dem Fall eine for-Schleife ;D
                MfG
                ~Capfly

                Kommentar


                • #9
                  Zitat von ePole Beitrag anzeigen
                  seh ich geister?
                  Ich seh einen ... den „keine Ahnung von Grundlagen“-Geist, und er schwebt direkt über dir.


                  Welche Werte durchläuft das $i in deiner Schleife?
                  Stimmen diese mit den Indices des Arrays überein ...?

                  Kommentar


                  • #10
                    Ja sorry, ich meinte auch die einsen (wie komm ich depp auf text...)...ich müsste doch folgendes sehen:

                    Code:
                    1<br>
                    1<br>
                    1<br>
                    und auch bei der for-schleife bekomme ich ein gleiches ergebnis.

                    PHP-Code:
                    echo "Ergebnis: <br>";
                    for(
                    $i=0$i count(array_filter($array)); $i++)
                       {
                       echo 
                    $array[$i]."<br>";
                       } 
                    das ist mein array:
                    Array ( [15] => 1 [21] => 1 [16] => 1 )

                    Kommentar


                    • #11
                      Was ergibt count() denn?
                      MfG
                      ~Capfly

                      Kommentar


                      • #12
                        Zitat von ePole Beitrag anzeigen
                        das ist mein array:
                        Array ( [15] => 1 [21] => 1 [16] => 1 )
                        Ich wiederhole meine Frage: Welche Werte durchläuft $i, und stimmt das mit den Array-Indices überein ...?

                        Versuche bitte, dir diese Frage zu beantworten (nicht mir, ich kenne die Antwort) - dann merkst du auch, wo das Problem liegt.

                        Kommentar


                        • #13
                          Zitat von Capfly Beitrag anzeigen
                          Was fürn Text? Was steht im Array? ( Gekürzter Überblick bitte )

                          Übrigens, ich empfehle dir in dem Fall eine for-Schleife ;D
                          Array ( [15] => 1 [21] => 1 [16] => 1 )

                          die for-schleife brachte keine besserung.

                          Kommentar


                          • #14
                            Ja, sollte nur anwendungerfreundlicher sein!

                            Also, was ergibt count() ???

                            Wenn das nicht stimmt, is der Fehler klar!
                            MfG
                            ~Capfly

                            Kommentar


                            • #15
                              hmmm...count() ergibt 5 und das soll mir jetzt etwas sagen?

                              Kommentar

                              Lädt...
                              X