Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menyisih Tatasusunan Multidimensi Tersuai Berdasarkan Kunci Khusus dalam PHP?

Bagaimana untuk Menyisih Tatasusunan Multidimensi Tersuai Berdasarkan Kunci Khusus dalam PHP?

Linda Hamilton
Linda Hamiltonasal
2024-10-20 19:04:02623semak imbas

How to Custom Sort Multidimensional Arrays Based on a Specific Key in PHP?

Isih Tersuai Tatasusunan Berbilang Dimensi

Mengisih tatasusunan berbilang dimensi boleh menjadi tugas biasa dalam pengaturcaraan. Artikel ini menunjukkan cara mengisih tatasusunan sedemikian berdasarkan kunci tertentu menggunakan fungsi PHP usort().

Memahami Tugasan

Pertimbangkan tatasusunan berbilang dimensi berikut di mana setiap elemen mewakili rekod:

<code class="php">Array (
    [0] => Array
        (
            [iid] => 1
            [invitee] => 174
            [nid] => 324343
            [showtime] => 2010-05-09 15:15:00
            [location] => 13
            [status] => 1
            [created] => 2010-05-09 15:05:00
            [updated] => 2010-05-09 16:24:00
        )

    [1] => Array
        (
            [iid] => 1
            [invitee] => 220
            [nid] => 21232
            [showtime] => 2010-05-09 15:15:00
            [location] => 12
            [status] => 0
            [created] => 2010-05-10 18:11:00
            [updated] => 2010-05-10 18:11:00
        ))</code>

Isih mengikut Kekunci

Untuk mengisih tatasusunan ini mengikut kekunci "status", kita perlu mentakrifkan fungsi perbandingan yang menentukan susunan unsur.

<code class="php">function cmp($a, $b) {
    if ($a['status'] == $b['status']) {
        return 0;
    }
    return ($a['status'] < $b['status']) ? -1 : 1;
}</code>

Fungsi ini membandingkan nilai "status" dua elemen. Jika nilai adalah sama, ia mengembalikan 0. Jika elemen pertama mempunyai nilai "status" yang lebih rendah daripada yang kedua, ia mengembalikan -1. Jika tidak, ia mengembalikan 1.

Menggunakan usort()

Kami kini boleh menggunakan fungsi usort() untuk mengisih tatasusunan menggunakan fungsi perbandingan kami:

<code class="php">usort($array, "cmp");</code>

Ini akan mengisih tatasusunan dalam tertib menaik berdasarkan kekunci "status". Tatasusunan yang diubah suai akan mempunyai elemennya disusun semula dengan sewajarnya.

Menyesuaikan Perbandingan

Fungsi perbandingan boleh disesuaikan untuk mengisih tatasusunan berdasarkan sebarang kunci. Hanya ubah suai fungsi untuk membandingkan nilai kunci yang dikehendaki. Ini memberikan fleksibiliti dalam menyusun tatasusunan berbilang dimensi berdasarkan kriteria yang berbeza.

Atas ialah kandungan terperinci Bagaimana untuk Menyisih Tatasusunan Multidimensi Tersuai Berdasarkan Kunci Khusus 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