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