Filtern mit 'array_filter'
Teil des Abschnitts Logik & Ablauf der PHP-Journey von Coddy. Lektion 41 von 68.
Die Funktion array_filter() wurde entwickelt, um ein neues Array zu erstellen, das nur die Elemente enthält, die bestimmte Kriterien erfüllen. Anders als array_map(), das jedes Element transformiert, behält array_filter() selektiv Elemente abhängig davon bei, ob sie einen Test bestehen.
Wenn array_filter() ohne eine Callback-Funktion verwendet wird, entfernt es automatisch alle „empty“-Werte aus einem array. PHP betrachtet mehrere values als leer: false, null, 0, leere Strings "" und leere arrays.
<?php
$mixedData = ["hello", 0, "world", false, null, "PHP", ""];
$cleanedData = array_filter($mixedData);
// Ergebnis: ["hello", "world", "PHP"]
?>Dieses Verhalten macht array_filter() äußerst nützlich zum Bereinigen von Datenarrays. Das ursprüngliche Array bleibt unverändert, und du erhältst ein neues Array, das nur die sinnvollen Werte enthält. Dies ist besonders hilfreich bei der Verarbeitung von Benutzereingaben oder bei der Arbeit mit Daten, die möglicherweise unerwünschte leere Werte enthalten.
Aufgabe
EinfachDu erhältst eine Eingabe: eine durch Kommas getrennte Liste von Umfrageantworten, die verschiedene Datentypen einschließlich Zahlen, leeren Zeichenfolgen, Nullen und Textantworten enthält. Die Eingabe hat das Format yes,0,,no,5,,true,false,answer.
Lies die Eingabe ein, wandle die durch Kommas getrennten values in ein array um, verwende array_filter() ohne eine Callback-Funktion, um alle empty values zu entfernen, und gib jeden verbleibenden value in einer eigenen Zeile in der Reihenfolge aus, in der er vorkommt.
Denke daran, dass array_filter() ohne Callback automatisch values entfernt, die PHP als empty betrachtet: false, null, 0, empty strings "" und empty arrays.
Input format: Eine Zeile mit durch Kommas getrennten values (Beispiel: yes,0,,no,5,,true,false,answer)
Expected output: Jeder nicht-leere value wird in einer eigenen Zeile in der Reihenfolge ausgegeben, in der er im gefilterten array vorkommt.
Probier es selbst
<?php
// Eingabe lesen
$input = trim(fgets(STDIN));
// Kommagetrennte Werte in ein Array umwandeln
$responses = explode(',', $input);
// TODO: Schreibe deinen Code darunter
// Verwende array_filter(), um leere Werte zu entfernen und jeden verbleibenden Wert auszugeben
?>Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Ablauf
1Fortgeschrittene Funktionen
Anonyme FunktionenClosures und 'use'Arrow FunctionsCallback-FunktionenVerwendung von 'call_user_func'VariablenfunktionenReferenzübergabeRekursive FunktionenRückblick: Funktions-Medley4Mehrdimensionale Arrays
Ein 2D-Array erstellenZugriff auf 2D-Array-ElementeÄndern von 2D-Array-ElementenIterieren mit verschachtelten Schleifen2D assoziative ArraysZusammenfassung: Einfache Gitter-Übung2Fortgeschrittene Array-Manipulationen
Hinzufügen mit 'array_push'Entfernen mit 'array_pop'Hinzufügen mit 'array_unshift'Entfernen mit 'array_shift'Indizierte Arrays zusammenführenAssoziative Arrays zusammenführenExtrahieren mit 'array_slice'Werte mit 'in_array'Schlüssel mit 'array_search'Rückblick: Playlist-Übung3Arrays sortieren
Indizierte Arrays aufsteigend sortierenIndizierte Arrays absteigend sortierenAssoziative Arrays nach Wert sortierenAssoziative Arrays nach Schlüssel sortierenNatürliche SortierungBenutzerdefiniertes Sortieren mit 'usort'Recap: Leaderboard-Sortierung6Array-Funktionen höherer Ordnung
Transformieren mit 'array_map''array_map' mit benutzerdefinierten FunktionenFiltern mit 'array_filter''array_filter' mit benutzerdefinierten FunktionenReduzieren mit 'array_reduce'Durchlaufen mit 'array_walk'Zusammenfassung: DatenverarbeitungÜbe selbstständig: Online-PHP-Compiler