Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Isih Tatasusunan Berbilang Dimensi dalam PHP Menggunakan `usort()` dan `uasort()`?

Bagaimanakah Saya Boleh Isih Tatasusunan Berbilang Dimensi dalam PHP Menggunakan `usort()` dan `uasort()`?

Susan Sarandon
Lepaskan: 2024-12-27 03:41:09
asal
482 orang telah melayarinya

How Can I Sort a Multi-Dimensional Array in PHP Using `usort()` and `uasort()`?

Isih Tatasusunan Berbilang Dimensi Mengikut Nilai

Banyak situasi timbul apabila keperluan untuk mengisih tatasusunan berbilang dimensi diperlukan. Ini boleh dicapai dengan menggunakan fungsi perbandingan yang ditentukan pengguna dalam fungsi usort().

Isih mengikut Kekunci Tunggal Menggunakan usort()

Untuk mengisih tatasusunan yang diberikan dengan nilai kekunci "pesanan", kita boleh mentakrifkan fungsi pengisihan seperti berikut:

function sortByOrder($a, $b) {
    if ($a['order'] > $b['order']) {
        return 1;
    } elseif ($a['order'] < $b['order']) {
        return -1;
    }
    return 0;
}

usort($myArray, 'sortByOrder');
Salin selepas log masuk

Sebagai alternatif, kita boleh menggunakan fungsi tanpa nama:

usort($myArray, function($a, $b) {
    if ($a['order'] > $b['order']) {
        return 1;
    } elseif ($a['order'] < $b['order']) {
        return -1;
    }
    return 0;
});
Salin selepas log masuk

Isih Berbilang Dimensi

Pendekatan ini boleh dilanjutkan untuk mengisih tatasusunan berbilang dimensi. Contohnya, untuk mengisih mengikut "perintah" dan kemudian "suborder":

usort($myArray, function($a, $b) {
    $retval = $a['order'] <=> $b['order'];
    if ($retval == 0) {
        $retval = $a['suborder'] <=> $b['suborder'];
    }
    return $retval;
});
Salin selepas log masuk

Memelihara Persatuan Utama dengan uasort()

Jika anda perlu mengekalkan persatuan utama , gunakan uasort(). Untuk perbandingan, rujuk perbandingan manual fungsi pengisihan tatasusunan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Isih Tatasusunan Berbilang Dimensi dalam PHP Menggunakan `usort()` dan `uasort()`?. 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