Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana Mengisih Tatasusunan Berbilang Dimensi mengikut Kunci: Penyelesaian Langkah demi Langkah?

Bagaimana Mengisih Tatasusunan Berbilang Dimensi mengikut Kunci: Penyelesaian Langkah demi Langkah?

Barbara Streisand
Barbara Streisandasal
2024-10-20 19:02:02580semak imbas

How to Sort a Multidimensional Array by Key: A Step-by-Step Solution?

Mengisih Tatasusunan Berbilang Dimensi dengan Kunci: Panduan Komprehensif

Mengatur elemen tatasusunan berbilang dimensi dalam susunan tertentu boleh menjadi keperluan biasa dalam pengaturcaraan. Isih mengikut kunci tertentu menyediakan cara yang cekap untuk menyusun dan mendapatkan semula data.

Pertimbangkan tatasusunan berbilang dimensi berikut yang mengandungi jemputan:

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
    ))

Untuk mengisih tatasusunan ini mengikut kekunci "status", kami boleh menggunakan fungsi usort() dan fungsi perbandingan tersuai.

Fungsi Perbandingan Tersuai

Fungsi perbandingan menentukan susunan unsur dengan membandingkan kekuncinya. Berikut ialah fungsi yang membandingkan berdasarkan kekunci "status":

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

Fungsi ini mengembalikan -1 apabila $a sepatutnya sebelum $b, 1 apabila $a sepatutnya datang selepas $b dan 0 apabila mereka adalah sama.

Isih Tatasusunan

Kita kini boleh mengisih tatasusunan menggunakan usort():

usort($array, "cmp");

Ini akan mengisih tatasusunan mengikut kunci "status" dalam tertib menaik. Jika kita ingin membalikkan susunan, kita boleh menggunakan rsort():

rsort($array, "cmp");

Dengan menggunakan fungsi perbandingan yang disediakan dan fungsi pengisihan, kita boleh mengisih tatasusunan berbilang dimensi dengan mudah menggunakan sebarang kunci yang dikehendaki.

Atas ialah kandungan terperinci Bagaimana Mengisih Tatasusunan Berbilang Dimensi mengikut Kunci: Penyelesaian Langkah demi Langkah?. 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