Mengisih tatasusunan tarikh dalam PHP boleh menjadi rumit, terutamanya jika tarikh tersebut tidak dalam format piawai.
Dalam kes khusus anda, anda mempunyai tatasusunan tarikh dalam format yang berbeza, seperti "11-01-2012" dan "01-01-2014". Menggunakan fungsi penyusun, yang mengisih tatasusunan mengikut nilai dalam tertib menaik, tidak akan berfungsi dalam kes ini kerana ia menganggap setiap tarikh sebagai rentetan dan mengabaikan hierarki tahun-bulan-hari.
Untuk mengisih tatasusunan anda dengan betul, anda boleh menggunakan fungsi pengisihan tersuai yang menukarkan setiap tarikh kepada format boleh diisih sebelum perbandingan.
Menukar Tarikh kepada Cap Masa UNIX
Satu kaedah mudah ialah menukar setiap tarikh kepada cap waktu UNIX menggunakan fungsi strtotime(). Cap masa UNIX mewakili tarikh sebagai bilangan saat sejak 1970-01-01, yang menjadikannya mudah untuk dibandingkan dan diisih.
Berikut ialah contoh menggunakan fungsi isihan tersuai untuk mengisih tarikh menggunakan cap masa UNIX:
<code class="php">usort($arr, function ($a, $b) { return strtotime($a) - strtotime($b); });</code>
Fungsi ini akan mengambil dua tarikh sebagai input (diwakili oleh pembolehubah $a dan $b) dan mengembalikan perbezaan antara cap masa UNIX mereka. Tatasusunan yang terhasil akan diisih dalam susunan kronologi menaik.
Pertimbangan Tambahan
Adalah penting untuk ambil perhatian bahawa kaedah ini menganggap bahawa semua tarikh adalah dalam format yang sama. Jika tarikh anda datang daripada sumber yang berbeza atau menggunakan format tarikh yang berbeza, anda perlu menggunakan pustaka penghuraian tarikh dan penukaran yang lebih mantap.
Atas ialah kandungan terperinci Bagaimana Mengisih Tatasusunan Tarikh dengan Format Berbeza dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!