Menu
Coddy logo textTech

Etkinlikleri Tarihe Göre Sıralama

Coddy'nin PHP Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 62 / 68.

challenge icon

Görev

Kolay

İki girdi alacaksınız: olaylardan oluşan bir diziyi temsil eden bir JSON dizesi ve bugünün tarihini temsil eden YYYY-MM-DD biçiminde bir tarih dizesi.

İlk girdi şu biçimde bir JSON dizesi olacaktır: [{"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"}]

İkinci girdi şu biçimde bir tarih dizesi olacaktır: 2024-04-01

Her iki girdiyi okuyun ve JSON dizesini bir olaylar dizisine dönüştürün. Olayları yalnızca yaklaşan olayları içerecek şekilde filtreleyin (tarihi bugünün tarihinden büyük veya eşit olan olaylar).

Yaklaşan olayları, usort() işlevini özel bir karşılaştırma işleviyle kullanarak tarihlerine göre artan sırada (en erken tarih önce) sıralayın. Karşılaştırma işlevi, iki olayın tarihlerini karşılaştırmalı ve sıralarını belirleyen bir değer döndürmelidir.

Sıralama işleminden sonra her yaklaşan olayı aşağıdaki biçimde yazdırın:

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

Her olayı ayrı bir satırda, en erken tarihten en geç tarihe doğru kronolojik sırayla yazdırın.

Girdi biçimi:

  • İlk satır: name, date ve location anahtarlarına sahip olaylar dizisini temsil eden bir JSON dizesi
  • İkinci satır: Bugünün tarihini temsil eden YYYY-MM-DD biçiminde bir tarih dizesi (örnek: 2024-04-01)

Beklenen çıktı: Her yaklaşan olay, aşağıdaki biçimde kronolojik sırayla ayrı bir satıra yazdırılmalıdır: Upcoming: [name] on [date] at [location]

Kendin dene

<?php
// Etkinliklerin JSON dizesini oku
$eventsJson = fgets(STDIN);
$events = (array)json_decode($eventsJson, true);

// Bugünün tarihini oku
$todayDate = trim(fgets(STDIN));

// TODO: Kodunuzu aşağıya yazın
// Gelecek etkinlikleri filtrele (tarih >= bugünün tarihi)
// Gelecek etkinlikleri usort() kullanarak tarihe göre sırala
// Her bir gelecek etkinliği istenen formatta yazdır

?>

Mantık ve Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online PHP derleyicisi