Mengurutkan Acara Berdasarkan Tanggal
Termasuk bagian Logika dan Alur dalam perjalanan PHP di Coddy. Pelajaran 62 dari 68.
Tantangan
MudahKamu akan menerima dua input: string JSON yang merepresentasikan array berisi acara, dan string tanggal dalam format YYYY-MM-DD yang merepresentasikan tanggal hari ini.
Input pertama berupa string JSON dengan format berikut: [{"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"}]
Input kedua berupa string tanggal dengan format berikut: 2024-04-01
Baca kedua input dan dekode string JSON menjadi array berisi acara. Filter acara agar hanya mencakup acara mendatang, yaitu acara yang tanggalnya sama dengan atau lebih besar dari tanggal hari ini.
Urutkan acara mendatang berdasarkan tanggalnya secara menaik, dengan tanggal paling awal di urutan pertama, menggunakan usort() dengan fungsi pembanding khusus. Fungsi pembanding tersebut harus membandingkan tanggal dari dua acara dan mengembalikan nilai yang menentukan urutannya.
Setelah mengurutkan, cetak setiap acara mendatang dalam format berikut:
Upcoming: [name] on [date] at [location]
Cetak setiap acara pada baris terpisah, dalam urutan kronologis dari tanggal paling awal hingga paling akhir.
Format input:
- Baris pertama: String JSON yang merepresentasikan array acara dengan kunci
name,date, danlocation - Baris kedua: String tanggal dalam format YYYY-MM-DD yang merepresentasikan tanggal hari ini (contoh:
2024-04-01)
Output yang diharapkan: Setiap acara mendatang dicetak pada baris terpisah dalam urutan kronologis dengan format: Upcoming: [name] on [date] at [location]
Coba sendiri
<?php
// Baca string JSON berisi acara
$eventsJson = fgets(STDIN);
$events = (array)json_decode($eventsJson, true);
// Baca tanggal hari ini
$todayDate = trim(fgets(STDIN));
// TODO: Tulis kodemu di bawah ini
// Saring acara mendatang (date >= tanggal hari ini)
// Urutkan acara mendatang berdasarkan tanggal menggunakan usort()
// Cetak setiap acara mendatang dalam format yang diminta
?>Semua pelajaran di Logika dan Alur
1Fungsi Lanjutan
Fungsi AnonimClosure dan 'use'Fungsi PanahFungsi CallbackMenggunakan 'call_user_func'Fungsi VariabelMengirim dengan ReferensiFungsi RekursifUlasan: Ragam Fungsi4Array Multidimensi
Membuat array 2DMengakses Elemen array 2DMengubah Elemen array 2DMelakukan Perulangan dengan loop Bersarangarray Asosiatif 2DRekap: Latihan Kisi Sederhana2Manipulasi array Lanjutan
Menambahkan dengan 'array_push'Menghapus dengan 'array_pop'Menambahkan dengan 'array_unshift'Menghapus dengan 'array_shift'Menggabungkan array berindeksMenggabungkan array asosiatifMengambil bagian dengan 'array_slice'Nilai dengan 'in_array'Kunci dengan 'array_search'Rekap: Latihan playlist3Mengurutkan array
Urutkan array berindeks secara menaikUrutkan array berindeks secara menurunUrutkan assoc array berdasarkan nilaiUrutkan assoc array berdasarkan kunciPengurutan urutan alamiPengurutan khusus dengan 'usort'Rangkuman: Pengurutan papan peringkat6Fungsi array Tingkat Tinggi
Transformasi dengan 'array_map''array_map' dengan Fungsi KustomMemfilter dengan 'array_filter''array_filter' dengan Fungsi KustomMengurangi dengan 'array_reduce'Menelusuri dengan 'array_walk'Rangkuman: Pemrosesan Data9Penjadwal Acara
Data AcaraMenambahkan Acara BaruLatihan sendiri: Compiler PHP online