Menu
Coddy logo textTech

日付によるイベントのソート

CoddyのPHPジャーニー「論理とフロー」セクションの一部 — レッスン 62/68。

challenge icon

チャレンジ

簡単

2つの入力を受け取ります。イベントの配列を表すJSON文字列と、今日の日付を表すYYYY-MM-DD形式の日付文字列です。

最初の入力は、次の形式のJSON文字列です:[{"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"}]

2番目の入力は、次の形式の日付文字列です:2024-04-01

両方の入力を読み込み、JSON文字列をイベントの配列にデコードしてください。イベントをフィルタリングして、今後のイベント(日付が今日の日付以降のイベント)のみを含めます。

カスタム比較関数を用いた usort() を使用して、今後のイベントを日付の昇順(日付の早い順)にソートしてください。比較関数は2つのイベントの日付を比較し、それらの順序を決定する値を返す必要があります。

ソート後、各今後のイベントを次の形式で出力してください:

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

各イベントを、日付の早い順に1行ずつ出力してください。

入力形式:

  • 1行目:namedatelocation をキーに持つイベント配列を表すJSON文字列
  • 2行目:今日の日付を表すYYYY-MM-DD形式の日付文字列(例:2024-04-01

期待される出力: 各今後のイベントを、日付順に1行ずつ次の形式で出力します:Upcoming: [name] on [date] at [location]

自分で試してみよう

<?php
// イベントのJSON文字列を読み込む
$eventsJson = fgets(STDIN);
$events = (array)json_decode($eventsJson, true);

// 今日の日付を読み込む
$todayDate = trim(fgets(STDIN));

// TODO: 以下にコードを記述してください
// 今後のイベント(日付 >= 今日の日付)をフィルタリングする
// usort() を使用して今後のイベントを日付順にソートする
// 各今後のイベントを要求された形式で出力する

?>

論理とフローのすべてのレッスン