Warum nicht trimmen Arbeit als callback für array_walk oder array_map PHP?
Warum macht mein Beispielcode Ergebnis in den ersten string noch ein Leerzeichen?
$a=array('test_data_1 ','test_data_2');
array_walk($a, 'trim');
array_map('trim', $a);
foreach($a AS $b){
var_dump($b);
}
string(12) "test_data_1" string(11) "test_data_2"
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erste, array_walk ist die falsche Funktion für Ihre Zwecke überhaupt.
Zweite, array_map nicht ändern, das ursprüngliche array, sondern gibt das zugeordnete array. Was Sie also brauchen, ist:
trim('test_data_1 ', 0); trim('test_data_2 ', 1)
- keine Zuweisungen, keine Nebenwirkungen (und eine falsche zweiten parameter für trim, by the way). Sie könnte natürlich schreiben Sie Ihre eigene Funktion array_walk, die kürzt das aktuelle array-element.Für
array_walk
zum ändern der Elemente (Werte) in dem array, callback muss eine Funktion sein, nimmt Sie Ihre erste parameter per Referenz ändert (was nicht der Fall von plaintrim
), sodass Ihr code werden würde:Alternativ mit
array_map
müssen Sie neu zuweisen, das array mit dem Rückgabewert, also dein code würde so Aussehen:array_map Rückgabe ein neues array, versuchen Sie, diese