Lista nadchodzących wydarzeń
Część sekcji Logika i przepływ programu ścieżki PHP w Coddy. Lekcja 61 z 68.
Wyzwanie
ŁatwyOtrzymasz dwa dane wejściowe: ciąg JSON reprezentujący istniejącą tablicę wydarzeń oraz ciąg z datą w formacie YYYY-MM-DD reprezentujący 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 z datą w tym formacie: 2024-04-01
Odczytaj oba dane wejściowe i zdekoduj ciąg JSON do tablicy wydarzeń. Utwórz dwa obiekty DateTime: jeden dla dzisiejszej daty (używając drugiego wejścia) i po jednym dla daty każdego wydarzenia podczas iterowania przez wydarzenia.
Odfiltruj i wyświetl tylko nadchodzące wydarzenia — te, których data jest późniejsza niż lub równa dzisiejszej dacie. Wypisz każde nadchodzące wydarzenie w następującym formacie:
Upcoming: [name] on [date] at [location]
Wypisz każde nadchodzące wydarzenie w osobnym wierszu, w kolejności, w jakiej występują w tablicy. Jeśli data wydarzenia jest wcześniejsza niż dzisiejsza data, nie wypisuj go.
Format wejściowy:
- Pierwszy wiersz: ciąg JSON reprezentujący tablicę wydarzeń z kluczami
name,dateilocation - Drugi wiersz: ciąg z datą w formacie YYYY-MM-DD reprezentujący dzisiejszą datę (na przykład:
2024-04-01)
Oczekiwane wyjście: Każde nadchodzące wydarzenie wypisane w osobnym wierszu w formacie: Upcoming: [name] on [date] at [location]
Spróbuj swoich sił
<?php
// Wczytaj ciąg JSON zawierający wydarzenia
$eventsJson = fgets(STDIN);
$events = (array)json_decode($eventsJson, true);
// Wczytaj dzisiejszą datę
$todayDate = trim(fgets(STDIN));
// TODO: Napisz swój kod poniżej
// Utwórz obiekt DateTime dla dzisiejszej daty
// Przejdź przez wydarzenia i porównaj daty
// Wypisz nadchodzące wydarzenia 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