Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menyusun Susunan Objek mengikut Tarikh dalam PHP?

Bagaimana untuk Menyusun Susunan Objek mengikut Tarikh dalam PHP?

Linda Hamilton
Linda Hamiltonasal
2024-10-26 03:36:031006semak imbas

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>

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>

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>

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>

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>

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!

Kenyataan:
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