Menu
Coddy logo textTech

Zusammenfassung: Datenverarbeitung

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

challenge icon

Aufgabe

Einfach

Sie erhalten drei Eingaben: eine durch Kommas getrennte Liste von Mitarbeiternamen, eine durch Kommas getrennte Liste der entsprechenden Arbeitsstunden für die Woche und einen Schwellenwert für die Mindeststundenzahl. Die erste Eingabe enthält Namen im Format Alice,Bob,Charlie,Diana,Eve, die zweite Eingabe enthält Stunden als Zahlen im Format 45,32,50,28,40 und die dritte Eingabe ist der Schwellenwert für die Mindeststundenzahl als Zahl (Beispiel: 35).

Lesen Sie alle drei Eingaben ein und konvertieren Sie diese in entsprechende Arrays. Erstellen Sie ein kombiniertes assoziatives Array, in dem die Mitarbeiternamen die Schlüssel und ihre Arbeitsstunden die Werte sind. Führen Sie dann die folgenden Operationen unter Verwendung von Array-Funktionen höherer Ordnung aus:

  1. Verwenden Sie array_filter() mit einer benutzerdefinierten Callback-Funktion, um nur die Mitarbeiter zu behalten, die mindestens den Schwellenwert für die Mindeststundenzahl erreicht haben.
  2. Verwenden Sie array_map() mit einer benutzerdefinierten Callback-Funktion, um die Überstundenvergütung für die gefilterten Mitarbeiter zu berechnen (Überstunden sind alle Stunden über 40, vergütet mit dem 1,5-fachen des Satzes von $25 pro Stunde für reguläre Stunden).
  3. Verwenden Sie array_reduce() mit einer benutzerdefinierten Callback-Funktion, um die gesamte Überstundenvergütung über alle gefilterten Mitarbeiter hinweg zu berechnen.

Geben Sie die Ergebnisse im folgenden Format aus:

  • Geben Sie zuerst den Namen jedes qualifizierten Mitarbeiters und seine Überstundenvergütung in separaten Zeilen im Format Name: $Amount aus (gerundet auf 2 Dezimalstellen).
  • Geben Sie abschließend die gesamte Überstundenvergütung im Format Total: $Amount aus (gerundet auf 2 Dezimalstellen).

Berechnungsdetails:

  • Reguläre Stunden (bis zu 40): $25 pro Stunde
  • Überstunden (über 40): $37.50 pro Stunde (1,5-facher Satz)
  • Wenn ein Mitarbeiter 40 Stunden oder weniger gearbeitet hat, beträgt seine Überstundenvergütung $0.00

Eingabeformat:

  • Erste Zeile: Durch Kommas getrennte Mitarbeiternamen (Beispiel: Alice,Bob,Charlie,Diana,Eve)
  • Zweite Zeile: Durch Kommas getrennte Arbeitsstunden als Zahlen (Beispiel: 45,32,50,28,40)
  • Dritte Zeile: Schwellenwert für die Mindeststundenzahl als Zahl (Beispiel: 35)

Erwartete Ausgabe: Jeder qualifizierte Mitarbeiter mit seiner Überstundenvergütung in separaten Zeilen, gefolgt von der gesamten Überstundenvergütung, wobei alle Beträge auf 2 Dezimalstellen formatiert sind.

Probier es selbst

<?php
// Eingaben lesen
$names = explode(',', trim(fgets(STDIN)));
$hours = explode(',', trim(fgets(STDIN)));
$minHours = intval(trim(fgets(STDIN)));

// Stunden in Ganzzahlen umwandeln
$hours = array_map('intval', $hours);

// Assoziatives Array erstellen, das Namen und Stunden kombiniert
$employees = array_combine($names, $hours);

// TODO: Schreiben Sie Ihren Code unten
// 1. Verwenden Sie array_filter(), um Mitarbeiter zu behalten, die die Mindeststundenzahl oder mehr gearbeitet haben
// 2. Verwenden Sie array_map(), um die Überstundenvergütung für gefilterte Mitarbeiter zu berechnen
// 3. Verwenden Sie array_reduce(), um die gesamte Überstundenvergütung zu berechnen

// Ergebnisse ausgeben
// Die Überstundenvergütung jedes qualifizierten Mitarbeiters ausgeben
// Die gesamte Überstundenvergütung ausgeben

?>

Alle Lektionen in Logik & Ablauf