'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 wahre Stärke in der Verwendung eigener benutzerdefinierter Funktionen. Dies ermöglicht es Ihnen, spezifische Transformationen zu erstellen, die genau auf Ihre Bedürfnisse zugeschnitten sind.
Um eine benutzerdefinierte Funktion mit array_map() zu verwenden, übergeben Sie einfach den Funktionsnamen als String für den ersten Parameter. Ihre benutzerdefinierte Funktion sollte einen Parameter (das aktuelle Array-Element) akzeptieren und den transformierten 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 Ihnen die vollständige Kontrolle darüber, wie jedes Element verarbeitet wird. Sie können komplexe Berechnungen, String-Manipulationen oder jede andere Logik innerhalb Ihrer benutzerdefinierten Funktion durchführen, was array_map() unglaublich vielseitig für Datentransformationsaufgaben macht.
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Aufgabe
EinfachSie erhalten 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 Zeichenfolge im Format 0,10,20,30,100, und die zweite Eingabe ist ein einzelnes Zeichen, das den Umrechnungstyp angibt.
Lesen Sie beide Eingaben ein, konvertieren Sie die durch Kommas getrennten Temperaturen in ein Array von Zahlen, erstellen Sie eine benutzerdefinierte Funktion, die eine Celsius-Temperatur in die Zieleinheit umrechnet, verwenden Sie array_map() mit Ihrer benutzerdefinierten Funktion, um alle Temperaturen zu transformieren, und geben Sie jede umgerechnete Temperatur in einer separaten Zeile aus, gerundet auf 2 Dezimalstellen.
Umrechnungsformeln:
- Celsius nach Fahrenheit:
(C × 9/5) + 32 - Celsius nach Kelvin:
C + 273.15
Eingabeformat:
- Erste Zeile: Durch Kommas getrennte Temperaturen in Celsius (Beispiel:
0,10,20,30,100) - Zweite Zeile: Ziel-Umrechnungseinheit - entweder
FoderK(Beispiel:F)
Erwartete Ausgabe: Jede umgerechnete Temperatur in einer separaten Zeile, gerundet auf 2 Dezimalstellen
Spickzettel
Verwenden Sie benutzerdefinierte Funktionen mit array_map(), indem Sie den Funktionsnamen als String übergeben. Die benutzerdefinierte Funktion sollte einen Parameter (das aktuelle Array-Element) akzeptieren und den transformierten 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 bietet die vollständige Kontrolle über die Verarbeitung der Elemente und ermöglicht komplexe Berechnungen, String-Manipulationen oder jede beliebige benutzerdefinierte Logik innerhalb Ihrer Funktion.
Probier es selbst
<?php
// Einlesen der durch Kommas getrennten Temperaturen
$temperatures = fgets(STDIN);
// Einlesen der Zieleinheit (F oder K)
$unit = trim(fgets(STDIN));
// Umwandeln der durch Kommas getrennten Zeichenkette in ein Array von Zahlen
$tempArray = explode(',', trim($temperatures));
// TODO: Schreiben Sie Ihren Code unten
// Erstellen Sie eine benutzerdefinierte Funktion, um Celsius in die Zieleinheit umzurechnen
// Verwenden Sie array_map(), um die Umrechnung auf alle Temperaturen anzuwenden
// Geben Sie jede umgerechnete Temperatur in einer neuen 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