Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] array_walk und trim

Einklappen

Neue Werbung 2019

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

  • [Erledigt] array_walk und trim

    Hallo zusammen,

    ich musste gerade feststellen, das ich mit array_walk kein trim benutzen konnte. Sprich die Whitespaces am Anfang und am Ende wurden nicht entfernt. Kann mir jemand genau sagen wieso das so ist?

    Hab es jetzt mit array_map gelöst

    PHP-Code:
    $arr array_map('trim'$arr); 
    was ich aber sehr unschön finde. array_walk wäre mir lieber.


  • #2
    http://de2.php.net/array_walk

    Schau dir an wie array_walk arbeitet, vorallem die 2 Hinweise!
    Zitat von nikosch
    Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

    Kommentar


    • #3
      Ok hab jetzt gelesen, das nur der return Value von trim bearbeitet ist, nicht aber die Referenz. Was nicht zum gewünschten Ergebnis führt.

      Finde das eigentlich schade, da ich mir mit array_walk einen Schritt hätte sparen können. So muss ich einen Array in einen Array kopieren.

      Kommentar


      • #4
        Zitat von Fuel Beitrag anzeigen
        So muss ich einen Array in einen Array kopieren.
        Zitat von nikosch
        Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

        Kommentar


        • #5
          Zitat von tkausl Beitrag anzeigen
          Das bezog mich auf dieses vorgehen

          PHP-Code:

          array_walk
          ($arr'trim'); //der array wird nur durchlaufen (klappt ja leider nicht)

          $arr2 array_map('trim'$arr1); //hier wird kopiert oder nicht? 

          Kommentar


          • #6
            Dann nimm halt
            PHP-Code:
            array_walk($arr, function(&$value){$value trim($value)}); 
            wenn dir das besser gefällt.
            Zitat von nikosch
            Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

            Kommentar


            • #7
              array_walk ist meiner Meinung nach nur vorzuziehen wenn du sehr große Arrays modifizieren willst ohne ein weiteres Array gleicher Größe erzeugen willst.

              Arrays mit wenigen einträgen ( 50-500 ) stellen weder für PHP noch für array_map ein Speicher-Problem dar. Kommt also darauf an was du hast, was draus werden soll und wie oft das geschehen soll.
              [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

              Kommentar


              • #8
                ist ja eigentlich ziemlich schade. Die Funktionen für array_walk scheinen ja dann doch begrenzt zu sein. Ich weiß ja nicht wieviele ähnlich wie trim() arbeiten, aber das gilt es dann herauszufinden oder nachzulesen. Eine Exception gibt es ja nicht, da die Funktion in dem Fall einfach nur keinen Sinn macht.

                Kommentar


                • #9
                  Naja, für solche Fälle gibt es Closures. Darauf hat dich aber tklausl schon hingewiesen.

                  trim, ltrim und rtrim sind String-Funktionen, keine exklusiven callbacks für spezifische array operationen die auf einem Array und nicht mit einem Array arbeiten sollen.
                  [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

                  Kommentar


                  • #10
                    Zitat von tr0y Beitrag anzeigen
                    Naja, für solche Fälle gibt es Closures. Darauf hat dich aber tklausl schon hingewiesen.

                    trim, ltrim und rtrim sind String-Funktionen, keine exklusiven callbacks für spezifische array operationen die auf einem Array und nicht mit einem Array arbeiten sollen.
                    Ja weiß ich jetzt auch, aber es ärgert mich halt, das ich es leider erst viel später gemerkt habe. Und ich ewig einen Fehler suchen musste.

                    Kommentar

                    Lädt...
                    X