Menu
Coddy logo textTech

Riepilogo: elaborazione dei dati

Fa parte della sezione Logica e flusso del percorso PHP di Coddy. Lezione 45 di 68.

challenge icon

Sfida

Facile

Riceverai tre input: un elenco di nomi di dipendenti separati da virgole, un elenco separato da virgole delle rispettive ore di lavoro della settimana e una soglia minima di ore. Il primo input contiene i nomi nel formato Alice,Bob,Charlie,Diana,Eve, il secondo contiene le ore come numeri nel formato 45,32,50,28,40 e il terzo input è la soglia minima di ore espressa come numero (esempio: 35).

Leggi tutti e tre gli input e convertili in array appropriati. Crea un array associativo combinato in cui i nomi dei dipendenti siano le chiavi e le loro ore di lavoro siano i valori. Quindi esegui le seguenti operazioni usando funzioni di array di ordine superiore:

  1. Usa array_filter() con una funzione di callback personalizzata per mantenere solo i dipendenti che hanno lavorato almeno il numero minimo di ore richiesto
  2. Usa array_map() con una funzione di callback personalizzata per calcolare la retribuzione per gli straordinari dei dipendenti filtrati (gli straordinari sono le ore oltre le 40, retribuite a 1.5 volte la tariffa di $25 all'ora per le ore ordinarie)
  3. Usa array_reduce() con una funzione di callback personalizzata per calcolare la retribuzione totale degli straordinari di tutti i dipendenti filtrati

Stampa i risultati nel seguente formato:

  • Per prima cosa, stampa il nome di ciascun dipendente idoneo e la relativa retribuzione per gli straordinari su righe separate, nel formato Name: $Amount (arrotondata a 2 cifre decimali)
  • Infine, stampa la retribuzione totale degli straordinari nel formato Total: $Amount (arrotondata a 2 cifre decimali)

Dettagli del calcolo:

  • Ore ordinarie (fino a 40): $25 all'ora
  • Ore straordinarie (oltre 40): $37.50 all'ora (tariffa moltiplicata per 1.5)
  • Se un dipendente ha lavorato 40 ore o meno, la sua retribuzione per gli straordinari è $0.00

Formato dell'input:

  • Prima riga: nomi dei dipendenti separati da virgole (esempio: Alice,Bob,Charlie,Diana,Eve)
  • Seconda riga: ore di lavoro come numeri separati da virgole (esempio: 45,32,50,28,40)
  • Terza riga: soglia minima di ore espressa come numero (esempio: 35)

Output previsto: ogni dipendente idoneo con la relativa retribuzione per gli straordinari su righe separate, seguito dalla retribuzione totale degli straordinari; tutti gli importi sono formattati con 2 cifre decimali

Provalo tu

<?php
// Leggi i dati di input
$names = explode(',', trim(fgets(STDIN)));
$hours = explode(',', trim(fgets(STDIN)));
$minHours = intval(trim(fgets(STDIN)));

// Converti le ore in numeri interi
$hours = array_map('intval', $hours);

// Crea un array associativo che abbini nomi e ore
$employees = array_combine($names, $hours);

// TODO: Scrivi il tuo codice qui sotto
// 1. Usa array_filter() per mantenere i dipendenti che hanno lavorato almeno il numero minimo di ore
// 2. Usa array_map() per calcolare la retribuzione degli straordinari per i dipendenti filtrati
// 3. Usa array_reduce() per calcolare la retribuzione totale degli straordinari

// Mostra i risultati
// Stampa la retribuzione degli straordinari di ogni dipendente idoneo
// Stampa la retribuzione totale degli straordinari

?>

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore PHP online