Events nach Monat filtern
Teil des Abschnitts Logik & Ablauf der PHP-Journey von Coddy. Lektion 63 von 68.
Aufgabe
EinfachSie erhalten drei Eingaben: einen JSON-String, der ein Array von Ereignissen darstellt, einen Datums-String im Format YYYY-MM-DD, der das heutige Datum darstellt, und eine Monatsnummer (1-12), nach der gefiltert werden soll.
Die erste Eingabe ist ein JSON-String in diesem Format: [{"name":"Team Meeting","date":"2024-04-15","location":"Office"},{"name":"Conference","date":"2024-05-20","location":"Convention Center"},{"name":"Workshop","date":"2024-04-25","location":"Library"}]
Die zweite Eingabe ist ein Datums-String in diesem Format: 2024-04-01
Die dritte Eingabe ist eine Monatsnummer in diesem Format: 4
Lesen Sie alle drei Eingaben ein und dekodieren Sie den JSON-String in ein Array von Ereignissen. Filtern Sie die Ereignisse so, dass nur diejenigen enthalten sind, die beide Bedingungen erfüllen:
- Das Datum des Ereignisses liegt am oder nach dem heutigen Datum (nur anstehende Ereignisse)
- Das Ereignis findet im angegebenen Monat statt
Verwenden Sie DateTime-Objekte, um Daten zu vergleichen und den Monat aus dem Datum jedes Ereignisses mit der Methode format() und dem Formatzeichen "n" zu extrahieren (welches den Monat als Zahl ohne führende Nullen zurückgibt).
Geben Sie nach dem Filtern jedes übereinstimmende Ereignis im folgenden Format aus:
Event in month [month]: [name] on [date] at [location]
Geben Sie jedes Ereignis in einer separaten Zeile aus, in der Reihenfolge, in der sie im Array erscheinen. Wenn keine Ereignisse beide Kriterien erfüllen, geben Sie nichts aus.
Eingabeformat:
- Erste Zeile: Ein JSON-String, der das Array von Ereignissen mit den Schlüsseln
name,dateundlocationdarstellt - Zweite Zeile: Ein Datums-String im Format YYYY-MM-DD, der das heutige Datum darstellt (Beispiel:
2024-04-01) - Dritte Zeile: Eine Monatsnummer von 1 bis 12 (Beispiel:
4für April)
Erwartete Ausgabe: Jedes Ereignis, das sowohl anstehend ist als auch im angegebenen Monat liegt, ausgegeben in einer separaten Zeile im Format: Event in month [month]: [name] on [date] at [location]
Probier es selbst
<?php
// Eingaben lesen
$jsonInput = trim(fgets(STDIN));
$todayDate = trim(fgets(STDIN));
$monthNumber = intval(trim(fgets(STDIN)));
// JSON in Array dekodieren
$events = (array)json_decode($jsonInput, true);
// TODO: Schreiben Sie Ihren Code unten
// Filtern Sie Ereignisse, die bevorstehen und im angegebenen Monat liegen
// Verwenden Sie DateTime-Objekte, um Daten zu vergleichen
// Geben Sie jedes passende Ereignis im erforderlichen Format aus
?>Alle Lektionen in Logik & Ablauf
1Fortgeschrittene Funktionen
Anonyme FunktionenClosures und 'use'Arrow FunctionsCallback-FunktionenVerwendung von 'call_user_func'VariablenfunktionenReferenzübergabeRekursive FunktionenRückblick: Funktions-Medley4Mehrdimensionale Arrays
Ein 2D-Array erstellenZugriff auf 2D-Array-ElementeÄndern von 2D-Array-ElementenIterieren mit verschachtelten Schleifen2D assoziative ArraysZusammenfassung: Einfache Gitter-Übung2Fortgeschrittene Array-Manipulationen
Hinzufügen mit 'array_push'Entfernen mit 'array_pop'Hinzufügen mit 'array_unshift'Entfernen mit 'array_shift'Indizierte Arrays zusammenführenAssoziative Arrays zusammenführenExtrahieren mit 'array_slice'Werte mit 'in_array'Schlüssel mit 'array_search'Rückblick: Playlist-Übung3Arrays sortieren
Indizierte Arrays aufsteigend sortierenIndizierte Arrays absteigend sortierenAssoziative Arrays nach Wert sortierenAssoziative Arrays nach Schlüssel sortierenNatürliche SortierungBenutzerdefiniertes Sortieren mit 'usort'Recap: Leaderboard-Sortierung6Array-Funktionen höherer Ordnung
Transformieren mit 'array_map''array_map' mit benutzerdefinierten FunktionenFiltern mit 'array_filter''array_filter' mit benutzerdefinierten FunktionenReduzieren mit 'array_reduce'Durchlaufen mit 'array_walk'Zusammenfassung: Datenverarbeitung9Event-Planer
Event-DatenEin neues Event hinzufügenÜbe selbstständig: Online-PHP-Compiler