Menu
Coddy logo textTech

Sortowanie wydarzeń według daty

Część sekcji Logika i przepływ programu ścieżki PHP w Coddy. Lekcja 62 z 68.

challenge icon

Wyzwanie

Łatwy

Otrzymasz dwa dane wejściowe: ciąg JSON reprezentujący tablicę wydarzeń oraz ciąg daty w formacie YYYY-MM-DD, który oznacza dzisiejszą datę.

Pierwsze dane wejściowe będą ciągiem JSON w tym formacie: [{"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"}]

Drugie dane wejściowe będą ciągiem daty w tym formacie: 2024-04-01

Odczytaj oba dane wejściowe i zdekoduj ciąg JSON do tablicy wydarzeń. Przefiltruj wydarzenia tak, aby uwzględnić tylko nadchodzące wydarzenia (wydarzenia, których data jest późniejsza lub równa dzisiejszej dacie).

Posortuj nadchodzące wydarzenia według daty w kolejności rosnącej (od najwcześniejszej daty), używając usort() z własną funkcją porównującą. Funkcja porównująca powinna porównywać daty dwóch wydarzeń i zwracać wartość określającą ich kolejność.

Po posortowaniu wypisz każde nadchodzące wydarzenie w następującym formacie:

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

Wypisz każde wydarzenie w osobnym wierszu, w kolejności chronologicznej od najwcześniejszej do najpóźniejszej daty.

Format danych wejściowych:

  • Pierwszy wiersz: ciąg JSON reprezentujący tablicę wydarzeń z kluczami name, date i location
  • Drugi wiersz: ciąg daty w formacie YYYY-MM-DD, który oznacza dzisiejszą datę (na przykład: 2024-04-01)

Oczekiwane dane wyjściowe: Każde nadchodzące wydarzenie wypisane w osobnym wierszu, w kolejności chronologicznej, w formacie: Upcoming: [name] on [date] at [location]

Spróbuj swoich sił

<?php
// Odczytaj ciąg JSON z wydarzeniami
$eventsJson = fgets(STDIN);
$events = (array)json_decode($eventsJson, true);

// Odczytaj dzisiejszą datę
$todayDate = trim(fgets(STDIN));

// TODO: Napisz swój kod poniżej
// Odfiltruj nadchodzące wydarzenia (date >= dzisiejsza data)
// Posortuj nadchodzące wydarzenia według daty za pomocą usort()
// Wypisz każde nadchodzące wydarzenie w wymaganym formacie

?>

Wszystkie lekcje w sekcji Logika i przepływ programu

Poćwicz samodzielnie: Kompilator PHP online