'array_map' mit benutzerdefinierten Funktionen
Teil des Abschnitts Logik & Ablauf der PHP-Journey von Coddy. Lektion 40 von 68.
Während integrierte Funktionen wie strtoupper gut mit array_map() funktionieren, liegt die eigentliche Stärke in der Verwendung eigener benutzerdefinierter Funktionen. Dadurch kannst du spezifische Transformationen erstellen, die genau auf deine Bedürfnisse zugeschnitten sind.
Um eine benutzerdefinierte Funktion mit array_map() zu verwenden, übergib einfach den Funktionsnamen als Zeichenfolge für den ersten Parameter. Deine benutzerdefinierte Funktion sollte einen Parameter (das aktuelle Array-Element) akzeptieren und den umgewandelten Wert zurückgeben.
<?php
function doubleNumber($num) {
return $num * 2;
}
$numbers = [1, 2, 3, 4, 5];
$doubled = array_map("doubleNumber", $numbers);
// Ergebnis: [2, 4, 6, 8, 10]
?>Dieser Ansatz gibt dir vollständige Kontrolle darüber, wie jedes Element verarbeitet wird. Du kannst komplexe Berechnungen, Zeichenfolgenmanipulationen oder jede andere Logik innerhalb deiner benutzerdefinierten Funktion durchführen, wodurch array_map() unglaublich vielseitig für Aufgaben zur Datentransformation wird.
Aufgabe
EinfachDu erhältst zwei Eingaben: eine durch Kommas getrennte Liste von Temperaturen in Celsius und eine Zieleinheit für die Umrechnung (entweder F für Fahrenheit oder K für Kelvin). Die erste Eingabe enthält Temperaturen als Zeichenkette im Format 0,10,20,30,100, und die zweite Eingabe ist ein einzelnes Zeichen, das den Umrechnungstyp angibt.
Lies beide Eingaben ein, wandle die durch Kommas getrennten Temperaturen in ein Zahlenarray um, erstelle eine benutzerdefinierte Funktion, die eine Celsius-Temperatur in die Zieleinheit umrechnet, verwende array_map() mit deiner benutzerdefinierten Funktion, um alle Temperaturen umzuwandeln, und gib jede umgerechnete Temperatur in einer eigenen Zeile aus, auf 2 Dezimalstellen gerundet.
Umrechnungsformeln:
- Celsius in Fahrenheit:
(C × 9/5) + 32 - Celsius in Kelvin:
C + 273.15
Eingabeformat:
- Erste Zeile: Durch Kommas getrennte Temperaturen in Celsius (Beispiel:
0,10,20,30,100) - Zweite Zeile: Zieleinheit für die Umrechnung – entweder
FoderK(Beispiel:F)
Erwartete Ausgabe: Jede umgerechnete Temperatur wird in einer eigenen Zeile ausgegeben, auf 2 Dezimalstellen gerundet
Probier es selbst
<?php
// Lies die kommagetrennten Temperaturen
$temperatures = fgets(STDIN);
// Lies die Zieleinheit (F oder K)
$unit = trim(fgets(STDIN));
// Konvertiere den kommagetrennten String in ein Array von Zahlen
$tempArray = explode(',', trim($temperatures));
// TODO: Schreibe deinen Code darunter
// Erstelle eine benutzerdefinierte Funktion, um Celsius in die Zieleinheit umzurechnen
// Verwende array_map(), um die Umrechnung auf alle Temperaturen anzuwenden
// Gib jede umgerechnete Temperatur in einer separaten Zeile aus, gerundet auf 2 Dezimalstellen
?>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