Menu
Coddy logo textTech

'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.

quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

challenge icon

Aufgabe

Einfach

Sie 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 F oder K (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

?>
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Ablauf