Sortowanie wydarzeń według daty
Część sekcji Logika i przepływ programu ścieżki PHP w Coddy. Lekcja 62 z 68.
Wyzwanie
ŁatwyOtrzymasz 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,dateilocation - 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
1Zaawansowane funkcje
Funkcje anonimoweDomknięcia i „use”Funkcje strzałkoweFunkcje zwrotneUżywanie „call_user_func”Funkcje zmiennePrzekazywanie przez referencjęFunkcje rekurencyjnePowtórka: przegląd funkcji4Tablice wielowymiarowe
Tworzenie tablicy 2DDostęp do elementów tablicy 2DModyfikowanie elementów tablicy 2DIterowanie z użyciem zagnieżdżonych pętliAsocjacyjne tablice 2DPodsumowanie: ćwiczenie z prostą siatką2Zaawansowane operacje na tablicach
Dodawanie za pomocą 'array_push'Usuwanie za pomocą 'array_pop'Dodawanie za pomocą 'array_unshift'Usuwanie za pomocą 'array_shift'Łączenie tablic indeksowanychŁączenie tablic asocjacyjnychWyodrębnianie za pomocą 'array_slice'Wyszukiwanie wartości za pomocą 'in_array'Wyszukiwanie kluczy za pomocą 'array_search'Podsumowanie: ćwiczenie z playlistą3Sortowanie tablic
Sortowanie tablic indeksowanych rosnącoSortowanie tablic indeksowanych malejącoSortowanie tablic asocjacyjnych według wartościSortowanie tablic asocjacyjnych według kluczaSortowanie w kolejności naturalnejSortowanie niestandardowe za pomocą 'usort'Podsumowanie: sortowanie tabeli wyników6Funkcje wyższego rzędu dla tablic
Przekształcanie za pomocą 'array_map''array_map' z własną funkcjąFiltrowanie za pomocą 'array_filter''array_filter' z własną funkcjąRedukowanie za pomocą 'array_reduce'Przechodzenie po elementach za pomocą 'array_walk'Podsumowanie: przetwarzanie danych9Harmonogram wydarzeń
Dane wydarzeniaDodawanie nowego wydarzeniaPoćwicz samodzielnie: Kompilator PHP online