Yaklaşan Etkinlikleri Listeleme
Coddy'nin PHP Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 61 / 68.
Görev
Kolayİki girdi alacaksınız: mevcut etkinlikler dizisini temsil eden bir JSON dizesi ve bugünün tarihini temsil eden YYYY-MM-DD formatında bir tarih dizesi.
İlk girdi şu formatta 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 formatta bir tarih dizesi olacaktır: 2024-04-01
Her iki girdiyi de okuyun ve JSON dizesini bir etkinlikler dizisine dönüştürün. İki DateTime nesnesi oluşturun: biri bugünün tarihi için (ikinci girdiyi kullanarak) ve diğeri etkinlikler arasında gezinirken her bir etkinliğin tarihi için.
Yalnızca yaklaşan etkinlikleri -tarihi bugünün tarihine eşit veya bugünden sonra olan etkinlikleri- filtreleyin ve görüntüleyin. Yaklaşan her etkinlik için şu formatta çıktı verin:
Upcoming: [name] on [date] at [location]
Yaklaşan her etkinliği, dizide göründükleri sırayla ayrı bir satıra yazdırın. Bir etkinliğin tarihi bugünden önceyse, onu yazdırmayın.
Girdi formatı:
- İlk satır:
name,datevelocationanahtarlarını içeren etkinlikler dizisini temsil eden bir JSON dizesi - İkinci satır: Bugünün tarihini temsil eden YYYY-MM-DD formatında bir tarih dizesi (örnek:
2024-04-01)
Beklenen çıktı: Yaklaşan her etkinlik, şu formatta ayrı bir satıra yazdırılı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));
// YAPILACAK: Kodunuzu aşağıya yazın
// Bugünün tarihi için DateTime nesnesi oluşturun
// Etkinlikler arasında döngü kurun ve tarihleri karşılaştırın
// Yaklaşan etkinlikleri gerekli formatta yazdırın
?>Mantık ve Akış bölümündeki tüm dersler
1İleri Seviye Fonksiyonlar
Anonim FonksiyonlarClosure'lar ve 'use'Ok Fonksiyonları (Arrow Functions)Geri Çağırma (Callback) Fonksiyonları'call_user_func' KullanımıDeğişken FonksiyonlarReferans ile Değer AktarımıÖz Yinelemeli (Recursive) FonksiyonlarÖzet: Fonksiyon Karması4Çok Boyutlu Diziler
2 Boyutlu Dizi Oluşturma2 Boyutlu Dizi Elemanlarına Erişme2 Boyutlu Dizi Elemanlarını Değiştirmeİç İçe Döngülerle Yineleme2 Boyutlu İlişkisel DizilerÖzet: Basit Izgara Egzersizi2İleri Düzey Dizi İşlemleri
'array_push' ile Ekleme'array_pop' ile Silme'array_unshift' ile Ekleme'array_shift' ile Silmeİndisli Dizileri Birleştirmeİlişkisel Dizileri Birleştirme'array_slice' ile Kesit Alma'in_array' ile Değer Kontrolü'array_search' ile Anahtar AramaÖzet: Çalma Listesi Alıştırması3Dizileri Sıralama
İndisli Dizileri Artan Sırada Sıralamaİndisli Dizileri Azalan Sırada Sıralamaİlişkisel Dizileri Değere Göre Sıralamaİlişkisel Dizileri Anahtara Göre SıralamaDoğal Sıralama (Natural Order)'usort' ile Özel SıralamaÖzet: Liderlik Tablosu Sıralama6Yüksek Mertebeden Dizi Fonksiyonları
'array_map' ile DönüştürmeÖzel Fonksiyon ile 'array_map''array_filter' ile FiltrelemeÖzel Fonksiyon ile 'array_filter''array_reduce' ile İndirgeme'array_walk' ile GezinmeÖzet: Veri İşleme9Etkinlik Planlayıcı
Etkinlik VerisiYeni Etkinlik Ekleme