Menu
Coddy logo textTech

Transformieren mit 'array_map'

Teil des Abschnitts Logik & Ablauf der PHP-Journey von Coddy — Lektion 39 von 68.

Die array_map()-Funktion ist ein leistungsstarkes Werkzeug, das jedes Element in einem Array transformiert, indem eine Callback-Funktion auf jedes einzelne angewendet wird. Im Gegensatz zu Funktionen, die das ursprüngliche Array verändern, erstellt und gibt array_map() ein völlig neues Array mit den transformierten Werten zurück.

Die grundlegende Syntax erfordert zwei Parameter: erstens die Callback-Funktion, die Sie anwenden möchten, und zweitens das Array, das Sie transformieren möchten. PHP verfügt über viele integrierte Funktionen, die perfekt als Callbacks mit array_map() funktionieren.

<?php
$names = ["alice", "bob", "charlie"];
$uppercaseNames = array_map("strtoupper", $names);
// Ergebnis: ["ALICE", "BOB", "CHARLIE"]
?>

In diesem Beispiel wird strtoupper auf jedes Element im $names Array angewendet. Das ursprüngliche Array bleibt unverändert, während $uppercaseNames die transformierten Ergebnisse enthält. Dies macht array_map() ideal, wenn Sie Daten verarbeiten müssen, ohne die ursprünglichen Werte zu verlieren.

challenge icon

Aufgabe

Einfach

Sie erhalten zwei Eingaben: eine durch Kommas getrennte Liste von Produktpreisen und einen Rabattprozentsatz. Die erste Eingabe enthält Preise als Zeichenfolge im Format 19.99,25.50,12.75,8.00, und die zweite Eingabe ist der Rabattprozentsatz als Zahl (Beispiel: 15).

Lesen Sie beide Eingaben ein, konvertieren Sie die durch Kommas getrennten Preise in ein Array von Zahlen, wenden Sie den Rabattprozentsatz auf jeden Preis an, indem Sie array_map() mit der integrierten floatval-Funktion für die Konvertierung und einer Berechnung für den Rabatt verwenden, und geben Sie jeden rabattierten Preis in einer separaten Zeile aus, gerundet auf 2 Dezimalstellen.

Um den rabattierten Preis zu berechnen: Multiplizieren Sie den Originalpreis mit (100 - discount) / 100.

Eingabeformat:

  • Erste Zeile: Durch Kommas getrennte Produktpreise (Beispiel: 19.99,25.50,12.75,8.00)
  • Zweite Zeile: Rabattprozentsatz als Zahl (Beispiel: 15)

Erwartete Ausgabe: Jeder rabattierte Preis in einer separaten Zeile, gerundet auf 2 Dezimalstellen (Beispiel: 16.99, 21.68, 10.84, 6.80)

Probier es selbst

<?php
// Eingabe lesen
$prices_input = trim(fgets(STDIN));
$discount = floatval(fgets(STDIN));

// Kommagetrennte Preise in ein Array umwandeln
$prices = explode(',', $prices_input);

// TODO: Schreiben Sie Ihren Code unten
// Verwenden Sie array_map(), um den Rabatt auf jeden Preis anzuwenden


// Geben Sie jeden rabattierten Preis in einer separaten Zeile aus

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