Menu
Coddy logo textTech

Ordinare gli eventi per data

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

challenge icon

Sfida

Facile

Riceverai due input: una stringa JSON che rappresenta un array di eventi e una stringa di data nel formato YYYY-MM-DD che rappresenta la data di oggi.

Il primo input sarà una stringa JSON in questo formato: [{"name":"Team Meeting","date":"2024-04-15","location":"Office"},{"name":"Conference","date":"2024-05-20","location":"Convention Center"},{"name":"Workshop","date":"2024-03-10","location":"Library"}]

Il secondo input sarà una stringa di data in questo formato: 2024-04-01

Leggi entrambi gli input e decodifica la stringa JSON in un array di eventi. Filtra gli eventi in modo da includere solo quelli futuri (eventi la cui data è maggiore o uguale alla data di oggi).

Ordina gli eventi futuri in base alla data, in ordine crescente (prima la data più vicina), usando usort() con una funzione di confronto personalizzata. La funzione di confronto dovrebbe confrontare le date di due eventi e restituire un valore che ne determini l'ordine.

Dopo l'ordinamento, stampa ogni evento futuro nel seguente formato:

Upcoming: [name] on [date] at [location]

Stampa ogni evento su una riga separata, in ordine cronologico dalla data più vicina a quella più lontana.

Formato dell'input:

  • Prima riga: una stringa JSON che rappresenta l'array di eventi con le chiavi name, date e location
  • Seconda riga: una stringa di data nel formato YYYY-MM-DD che rappresenta la data di oggi (ad esempio: 2024-04-01)

Output previsto: ogni evento futuro stampato su una riga separata, in ordine cronologico, nel formato: Upcoming: [name] on [date] at [location]

Provalo tu

<?php
// Leggi la stringa JSON degli eventi
$eventsJson = fgets(STDIN);
$events = (array)json_decode($eventsJson, true);

// Leggi la data di oggi
$todayDate = trim(fgets(STDIN));

// TODO: Scrivi il tuo codice qui sotto
// Filtra gli eventi futuri (date >= data di oggi)
// Ordina gli eventi futuri per data usando usort()
// Stampa ogni evento futuro nel formato richiesto

?>

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore PHP online