PHP: Alle leeren Elemente aus String Array entfernen
Tipp von NetGuy | 10.01.2013 um 15:37
Um bestimmte Elemente aus einem Array zu entfernen, kann man sich der Funktion unset() bedienen, zum Beispiel:
$arr = array('a', 'b', 'c'); unset($arr[1]); //löscht 'b' aus dem Array
Um alle leeren Elemente aus einem Array mit Strings zu löschen, kann man alle Elemente durchlaufen und mit unset() die ungewünschten entfernen:
$arr = array('a', '', 'b', '', 'c', '', ''); for ($i=count($arr)-1; $i>=0; $i--) { if ($arr[$i] == '') unset ($arr[$i]); } // array enthält nur noch 'a', 'b' und 'c'
Wir durchlaufen den Array rückwärts, da sich durch die Löschung die Länge des Arrays ständig ändern kann.
Die einfache Lösung
Betrachten wir einen String Array, geht es aber noch viel einfacher:
$arr = array('a', '', 'b', '', 'c', '', ''); $arr = array_filter($arr); // array enthält nur noch 'a', 'b' und 'c'
Die Funktion array_filter liefert ein neues Array zurück aus dem alle Elemente gelöscht wurden, für die eine optionale Callback Funktion false liefert. Da wir keine Callback Funktion angeben und in PHP ein leerer String (wie auch null oder false) false zurück gibt, können wir array_filter hier so einsetzen.
Auch Whitespace filtern
Wenn wir einen String auch dann aus dem Array schmeißen möchten, wenn er nur Whitespace enthält, können wir unser Beispiel so umändern (wir fügen trim() hinzu):
$arr = array('a', '', 'b', ' ', 'c', '', ' '); for ($i=count($arr)-1; $i>=0; $i--) { if (trim($arr[$i]) == '') unset ($arr[$i]); } // array enthält nur noch 'a', 'b' und 'c'
Und hier die Lösung mit einer Callback-Funktion:
function testelement($var) { return trim($var) != ''; } $arr = array('a', '', 'b', ' ', 'c', '', ' '); $arr = array_filter($arr, "testelement"); // array enthält nur noch 'a', 'b' und 'c'
Die Callback Funktion haben wir so definiert, dass Sie uns immer bei einem leeren String oder einem String, der nur Whitespace enthält, false liefert. Ansonsten liefert die Funktion true und das entsprechende Element bleibt im Array enthalten.
Über den Autor
Der Autor hat keine Kurzbeschreibung seines Profils angegeben.
Profil anzeigen
Ähnliche Themen
JavaScript: Arrays erstellen und nutzen
Info | 0 Kommentare
PHP: MySQL Ergebnis in Array speichern
Info | 0 Kommentare
PHP: Strings mit Ctype-Funktionen auf Zeichenklassen überprüfen
Artikel | 0 Kommentare
PHP: Array mit Zahlenfolgen oder Buchstabenfolgen füllen
Tutorial | 0 Kommentare
PHP: Formular-Eingaben als Array an PHP Skript schicken
Tipp | 0 Kommentare
JavaScript: Array Element für Element durchlaufen (foreach)
Tipp | 0 Kommentare
PHP: Array in Einzelvariablen schreiben
Tutorial | 0 Kommentare
Wichtiger Hinweis
Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.
Jetzt mitmachen
Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.