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