Bagaimana untuk Menyusun Susunan Objek mengikut Tarikh dalam PHP?

Linda Hamilton
Lepaskan: 2024-10-26 03:36:03
asal
1005 orang telah melayarinya

How to Sort an Array of Objects by Date in PHP?

Mengisih Tatasusunan Objek mengikut Tarikh

Dalam PHP, kita sering menghadapi keperluan untuk mengisih tatasusunan objek mengikut sifat tertentu, seperti medan tarikh. Ini membolehkan kami memaparkan atau memanipulasi data kami dalam susunan kronologi.

Menyusun Semula Objek mengikut Tarikh

Pertimbangkan tatasusunan objek berikut, di mana setiap objek mewakili rekod dengan sifat tarikh:

<code class="php">$array = [
    495 => (object)['date' => '2009-10-31 18:24:09'],
    582 => (object)['date' => '2010-2-11 12:01:42'],
];</code>
Salin selepas log masuk

Untuk mengisih objek ini mengikut sifat tarikhnya dalam tertib menaik (tertua dahulu), kita boleh menggunakan fungsi strtotime() dan fungsi usort().

Fungsi Perbandingan Tersuai

Untuk menggunakan usort(), kita perlu mentakrifkan fungsi perbandingan tersuai yang membandingkan dua objek berdasarkan sifat tarikhnya. Kod berikut mentakrifkan fungsi yang menolak cap masa (ditukar menggunakan strtotime()) tarikh objek pertama daripada cap masa tarikh objek kedua:

<code class="php">function cb($a, $b) {
    return strtotime($a['date']) - strtotime($b['date']);
}</code>
Salin selepas log masuk

Isih Array menggunakan usort()

Setelah kita mempunyai fungsi perbandingan, kita boleh memanggil usort() pada tatasusunan, menghantar fungsi perbandingan sebagai hujah kedua:

<code class="php">usort($array, 'cb');</code>
Salin selepas log masuk

Contoh

Menggunakan tatasusunan contoh dari awal, tatasusunan diisih yang terhasil ialah:

<code class="php">[
    495 => (object)['date' => '2009-10-31 18:24:09'],
    582 => (object)['date' => '2010-2-11 12:01:42'],
]</code>
Salin selepas log masuk

PHP 5.3 dan Ke Atas

Untuk PHP 5.3 dan ke atas, fungsi tanpa nama yang lebih ringkas boleh digunakan sebagai fungsi perbandingan:

<code class="php">usort($array, function($a, $b) {
    return strtotime($a['date']) - strtotime($b['date']);
});</code>
Salin selepas log masuk

Pendekatan ini mencapai hasil pengisihan yang sama seperti yang sebelumnya.

Atas ialah kandungan terperinci Bagaimana untuk Menyusun Susunan Objek mengikut Tarikh dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!