Warum funktioniert Trim nicht als Callback für array_walk oder array_map in PHP?

7

Warum führt mein Beispielcode dazu, dass die erste Zeichenfolge noch ein Leerzeichen enthält?

%Vor%
  

string (12) "test_data_1" string (11) "test_data_2"

    
Jaak Kütt 12.02.2013, 08:55
quelle

4 Antworten

36

Erstens, array_walk ist die falsche Funktion für Ihren Zweck überhaupt.

Zweitens ändert array_map nicht das ursprüngliche Array, sondern gibt das zugeordnete Array zurück. Was Sie brauchen, ist:

%Vor%     
Fabian Schmengler 12.02.2013, 08:59
quelle
3

Damit array_walk die Elemente (Werte) im Array ändert, muss der Callback eine Funktion sein, die ihren ersten Parameter als Referenz verwendet und modifiziert (was nicht der Fall von trim ist), also Ihr Code würde werden:

%Vor%

Alternativ dazu müssen Sie mit array_map das Array mit dem Rückgabewert neu zuweisen, sodass Ihr Code wie folgt aussehen würde:

%Vor%     
user6508083 24.06.2016 08:53
quelle
0

array_map gibt ein neues Array zurück, versuchen Sie dies

%Vor%     
silly 12.02.2013 08:58
quelle
0

trim() eignet sich gut zum Vorbereiten von Daten, bevor Sie sie prüfen oder einfügen. Sie werden sich wahrscheinlich mit mehr als nur schneiden vorbereiten, obwohl. Eine coole Technik, die ich schon mal gesehen habe, ist das "Piping" durch die vorbereitenden Funktionen:

%Vor%

Die Schönheit, es auf diese Weise zu machen, macht den Code leicht lesbar und es ist unglaublich einfach, Funktionen für jedes spezifische Array-Element auszuführen.

Hier ist eine Funktion, die ich schnell gefunden habe:

%Vor%     
rybo111 03.06.2015 16:18
quelle

Tags und Links