Events nach Datum sortieren
Teil des Abschnitts Logik & Ablauf der PHP-Journey von Coddy — Lektion 62 von 68.
Aufgabe
EinfachSie erhalten zwei Eingaben: einen JSON-String, der ein Array von Ereignissen darstellt, und einen Datums-String im Format YYYY-MM-DD, der das heutige Datum darstellt.
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-03-10","location":"Library"}]
Die zweite Eingabe ist ein Datums-String in diesem Format: 2024-04-01
Lesen Sie beide Eingaben ein und dekodieren Sie den JSON-String in ein Ereignis-Array. Filtern Sie die Ereignisse so, dass nur anstehende Ereignisse enthalten sind (Ereignisse, deren Datum größer oder gleich dem heutigen Datum ist).
Sortieren Sie die anstehenden Ereignisse nach ihrem Datum in aufsteigender Reihenfolge (frühestes Datum zuerst) unter Verwendung von usort() mit einer benutzerdefinierten Vergleichsfunktion. Die Vergleichsfunktion sollte die Daten von zwei Ereignissen vergleichen und einen Wert zurückgeben, der ihre Reihenfolge bestimmt.
Geben Sie nach der Sortierung jedes anstehende Ereignis im folgenden Format aus:
Upcoming: [name] on [date] at [location]
Geben Sie jedes Ereignis in einer separaten Zeile aus, in chronologischer Reihenfolge vom frühesten bis zum spätesten Datum.
Eingabeformat:
- Erste Zeile: Ein JSON-String, der das Ereignis-Array 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)
Erwartete Ausgabe: Jedes anstehende Ereignis wird in einer separaten Zeile in chronologischer Reihenfolge im Format ausgegeben: Upcoming: [name] on [date] at [location]
Probier es selbst
<?php
// Liest den JSON-String der Ereignisse
$eventsJson = fgets(STDIN);
$events = (array)json_decode($eventsJson, true);
// Liest das heutige Datum
$todayDate = trim(fgets(STDIN));
// TODO: Schreiben Sie Ihren Code unten
// Filtern Sie anstehende Ereignisse (Datum >= heutiges Datum)
// Sortieren Sie die anstehenden Ereignisse nach Datum mit usort()
// Geben Sie jedes anstehende 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