Menu
Coddy logo textTech

Trier les événements par date

Fait partie de la section Logique & Flux du Journey PHP de Coddy — leçon 62 sur 68.

challenge icon

Défi

Facile

Vous recevrez deux entrées : une chaîne JSON représentant un tableau d'événements, et une chaîne de date au format YYYY-MM-DD représentant la date d'aujourd'hui.

La première entrée sera une chaîne JSON dans ce format : [{"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"}]

La deuxième entrée sera une chaîne de date dans ce format : 2024-04-01

Lisez les deux entrées et décodez la chaîne JSON dans un tableau d'événements. Filtrez les événements pour n'inclure que les événements à venir (les événements dont la date est supérieure ou égale à la date d'aujourd'hui).

Triez les événements à venir par leur date dans l'ordre croissant (la date la plus proche en premier) en utilisant usort() avec une fonction de comparaison personnalisée. La fonction de comparaison doit comparer les dates de deux événements et renvoyer une valeur qui détermine leur ordre.

Après le tri, affichez chaque événement à venir au format suivant :

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

Affichez chaque événement sur une ligne séparée, par ordre chronologique, de la date la plus proche à la plus éloignée.

Format d'entrée :

  • Première ligne : Une chaîne JSON représentant le tableau d'événements avec les clés name, date, et location
  • Deuxième ligne : Une chaîne de date au format YYYY-MM-DD représentant la date d'aujourd'hui (exemple : 2024-04-01)

Sortie attendue : Chaque événement à venir affiché sur une ligne séparée par ordre chronologique au format : Upcoming: [name] on [date] at [location]

Essayez vous-même

<?php
// Lire la chaîne JSON des événements
$eventsJson = fgets(STDIN);
$events = (array)json_decode($eventsJson, true);

// Lire la date d'aujourd'hui
$todayDate = trim(fgets(STDIN));

// TODO: Écrivez votre code ci-dessous
// Filtrer les événements à venir (date >= date d'aujourd'hui)
// Trier les événements à venir par date en utilisant usort()
// Afficher chaque événement à venir au format requis

?>

Toutes les leçons de Logique & Flux