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

challenge icon

Aufgabe

Einfach

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

?>
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

Übe selbstständig: Online-PHP-Compiler