Trier les événements par date
Fait partie de la section Logique & Flux du Journey PHP de Coddy — leçon 62 sur 68.
Défi
FacileVous 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, etlocation - 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
1Fonctions avancées
Fonctions anonymesClosures et 'use'Fonctions fléchéesFonctions de rappelUtilisation de 'call_user_func'Fonctions variablesPassage par référenceFonctions récursivesRécapitulatif : Mélange de fonctions4Tableaux multidimensionnels
Créer un tableau 2DAccéder aux éléments d'un tableau 2DModifier les éléments d'un tableau 2DItérer avec des boucles imbriquéesTableaux associatifs 2DRécapitulatif : Exercice de grille simple2Manipulations avancées de tableaux
Ajouter avec 'array_push'Supprimer avec 'array_pop'Ajouter avec 'array_unshift'Supprimer avec 'array_shift'Fusionner des tableaux indexésFusionner des tableaux associatifsExtraire avec 'array_slice'Valeurs avec 'in_array'Clés avec 'array_search'Récapitulatif : Exercice Playlist3Tri des tableaux
Trier les tableaux indexés par ordre croissantTrier les tableaux indexés par ordre décroissantTrier les tableaux associatifs par valeurTrier les tableaux associatifs par cléTri par ordre naturelTri personnalisé avec 'usort'Récapitulatif : Tri d'un classement6Fonctions de tableau d'ordre supérieur
Transformer avec 'array_map''array_map' avec une fonction personnaliséeFiltrer avec 'array_filter''array_filter' avec une fonction personnaliséeRéduire avec 'array_reduce'Parcourir avec 'array_walk'Récapitulatif : Traitement des données9Planificateur d'événements
Données d'événementAjouter un nouvel événement