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.

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

Spickzettel

Die Funktion array_map() transformiert jedes Element in einem Array, indem sie eine Callback-Funktion auf jedes einzelne anwendet. Sie erstellt ein neues Array mit den transformierten Werten und gibt dieses zurück, wobei das ursprüngliche Array unverändert bleibt.

Grundlegende Syntax mit einer integrierten Funktion:

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

Die Funktion nimmt zwei Parameter entgegen: die Callback-Funktion und das zu transformierende Array. Sie können integrierte PHP-Funktionen oder anonyme Funktionen als Callbacks verwenden.

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