Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Mengisih Tatasusunan PHP dengan Berbilang Nilai Medan?
Mengisih Tatasusunan PHP mengikut Berbilang Nilai Medan
Mengisih tatasusunan dengan berbilang nilai boleh menjadi rumit dalam PHP, tetapi terdapat beberapa pendekatan untuk mencapai ini . Satu penyelesaian biasa ialah menggunakan fungsi array_multisort().
Andaikan anda mempunyai tatasusunan seperti yang disediakan dalam soalan:
Array ([ [ 'destination' => 'Sydney', 'airlines' => 'airline_1', 'one_way_fare' => 100, 'return_fare' => 300, ], [ 'destination' => 'Sydney', 'airlines' => 'airline_2', 'one_way_fare' => 150, 'return_fare' => 350, ], [ 'destination' => 'Sydney', 'airlines' => 'airline_3', 'one_way_fare' => 180, 'return_fare' => 380, ], ] )
Untuk mengisih tatasusunan ini mengikut return_fare dan one_way_fare in tertib menaik, anda boleh menggunakan array_multisort() seperti berikut:
// Obtain a list of columns foreach ($data as $key => $row) { $return_fare[$key] = $row['return_fare']; $one_way_fare[$key] = $row['one_way_fare']; } // Sort the data with return_fare descending, one_way_fare ascending array_multisort($data, $return_fare, SORT_ASC, $one_way_fare, SORT_ASC);
Ini akan mengisih tatasusunan dalam susunan menaik bagi return_fare, dan kemudian dalam nilai return_fare yang sama, ia akan mengisih dalam tertib menaik bagi one_way_fare.
Pilihan lain ialah menggunakan fungsi array_orderby(), yang menyediakan sintaks yang dipermudahkan untuk mengisih mengikut berbilang kriteria :
$sorted = array_orderby($data, 'return_fare', SORT_ASC, 'one_way_fare', SORT_ASC);
Untuk mengelakkan gelung, anda juga boleh menggunakan array_column() (tersedia dalam PHP 5.5.0 atau lebih baru) untuk mengekstrak lajur yang dikehendaki dan kemudian gunakan array_multisort() pada lajur tersebut:
array_multisort( array_column($data, 'return_fare'), SORT_ASC, array_column($data, 'one_way_fare'), SORT_ASC, $data );
Atas ialah kandungan terperinci Bagaimana untuk Mengisih Tatasusunan PHP dengan Berbilang Nilai Medan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!