Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Mengisih Tatasusunan Berbilang Dimensi dengan Berbilang Lajur dalam PHP?

Bagaimanakah Saya Boleh Mengisih Tatasusunan Berbilang Dimensi dengan Berbilang Lajur dalam PHP?

Barbara Streisand
Lepaskan: 2024-12-17 14:07:10
asal
321 orang telah melayarinya

How Can I Sort a Multidimensional Array by Multiple Columns in PHP?

Mengisih Tatasusunan Berbilang Dimensi mengikut Berbilang Lajur

Mengisih tatasusunan berbilang dimensi mengikut berbilang lajur boleh menjadi tugas yang mencabar. Walau bagaimanapun, PHP menyediakan pelbagai fungsi yang menjadikannya agak mudah.

Salah satu fungsi tersebut ialah array_multisort(). Fungsi ini membolehkan anda mengisih tatasusunan mengikut berbilang kriteria secara serentak. Untuk menggunakan array_multisort(), anda mesti mencipta tatasusunan lajur isihan dan data sepadannya dahulu.

Berikut ialah contoh:

<?php
$mylist = array(
    array('ID' => 1, 'title' => 'Boring Meeting', 'date_start' => '2010-07-30', 'event_type' => 'meeting', 'state' => 'new-york'),
    array('ID' => 2, 'title' => 'Find My Stapler', 'date_start' => '2010-07-22', 'event_type' => 'meeting', 'state' => 'new-york'),
    array('ID' => 3, 'title' => 'Mario Party', 'date_start' => '2010-07-22', 'event_type' => 'party', 'state' => 'new-york'),
    array('ID' => 4, 'title' => 'Duct Tape Party', 'date_start' => '2010-07-28', 'event_type' => 'party', 'state' => 'california')
);

# get a list of sort columns and their data to pass to array_multisort
$sort = array();
foreach($mylist as $k => $v) {
    $sort['state'][$k] = $v['state'];
    $sort['event_type'][$k] = $v['event_type'];
    $sort['date_start'][$k] = $v['date_start'];
}

# sort by state asc, event_type desc, and date_start asc
array_multisort($sort['state'], SORT_ASC, $sort['event_type'], SORT_DESC, $sort['date_start'], SORT_ASC, $mylist);

print_r($mylist); // print the sorted array

?php>
Salin selepas log masuk

Setakat PHP 5.5.0, anda boleh menggunakan berikut sintaks yang dipermudahkan:

<?php
array_multisort(array_column($mylist, 'state'), SORT_ASC,
                array_column($mylist, 'event_type'), SORT_DESC,
                array_column($mylist, 'date_start'), SORT_ASC,
                $mylist);
?php>
Salin selepas log masuk

Susun atur $mylist kini akan diisih mengikut lajur yang ditentukan dalam pesanan yang dikehendaki.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengisih Tatasusunan Berbilang Dimensi dengan Berbilang Lajur 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