Sebagai bahasa pengaturcaraan Web yang biasa digunakan, PHP tidak dapat dielakkan untuk memproses tatasusunan dalam senario aplikasi yang berbeza. Pengisihan tatasusunan juga merupakan masalah yang sering dihadapi semasa pembangunan. Artikel ini akan menerangkan cara mengisih tatasusunan dua dimensi.
1. Gambaran keseluruhan pengisihan tatasusunan dua dimensi
Dalam PHP, tatasusunan dua dimensi ialah tatasusunan komposit yang dipautkan oleh pelbagai tatasusunan satu dimensi, iaitu, ia bukan sahaja mempunyai konsep baris , dan konsep lajur. Apabila anda perlu mengisih tatasusunan dua dimensi, anda biasanya perlu mengisih salah satu lajurnya. Pada masa ini, anda perlu menggunakan fungsi yang disediakan oleh PHP untuk menyusun.
2. Kaedah mengisih tatasusunan dua dimensi
1 Gunakan fungsi usort()
fungsi usort() ialah fungsi yang disertakan dengan PHP untuk mengisih tatasusunan Satu. ia boleh menyesuaikan pengisihan elemen dalam tatasusunan, menyokong pelbagai kaedah pengisihan dan mempunyai parameter yang agak fleksibel. Kita boleh menggunakan fungsi usort() untuk mengisih tatasusunan dua dimensi.
Kod sampel adalah seperti berikut:
// 定义一个二维数组 $array = array( array('name' => 'Tom', 'age' => 18), array('name' => 'Jerry', 'age' => 20), array('name' => 'Jack', 'age' => 22) ); // 根据age字段进行升序排序 usort($array, function($a, $b){ return $a['age'] - $b['age']; }); // 输出排序后的数组 print_r($array);
Dalam kod sampel di atas, kami mentakrifkan tatasusunan dua dimensi yang mengandungi maklumat nama dan umur setiap orang, dan menggunakan usort() fungsi untuk mengisih tatasusunan dua dimensi ini Tatasusunan dimensi diisih mengikut tertib menaik mengikut medan umur. Antaranya, fungsi tanpa nama digunakan untuk membandingkan nilai medan umur dan melaksanakan operasi pengisihan yang sepadan.
2. Gunakan fungsi array_multisort()
Fungsi array_multisort() ialah fungsi lain yang digunakan untuk mengisih dalam PHP Ia boleh mengisih berbilang tatasusunan satu dimensi atau berbilang pelbagai dimensi. Fungsi ini bermula dengan dua parameter yang diperlukan - parameter pertama ialah tatasusunan yang hendak diisih, dan parameter kedua ialah kaedah pengisihan pilihan. Kita juga boleh menggunakan fungsi ini untuk mengisih tatasusunan dua dimensi.
Kod sampel adalah seperti berikut:
// 定义一个二维数组 $array = array( array('name' => 'Tom', 'age' => 18), array('name' => 'Jerry', 'age' => 20), array('name' => 'Jack', 'age' => 22) ); // 定义排序规则 $sort_order = array(); foreach($array as $key => $value){ $sort_order[$key] = $value['age']; } // 根据age字段进行升序排序 array_multisort($sort_order, SORT_ASC, $array); // 输出排序后的数组 print_r($array);
Dalam kod sampel di atas, kami mentakrifkan tatasusunan dua dimensi yang mengandungi maklumat nama dan umur setiap orang, dan menggunakan array_multisort() fungsi untuk mengisih ini Tatasusunan dua dimensi diisih mengikut tertib menaik mengikut medan umur. Antaranya, tatasusunan $sort_order digunakan untuk menyimpan maklumat umur dan dihantar ke fungsi array_multisort() untuk menentukan kaedah pengisihan.
3. Gunakan fungsi array_sort()
array_sort() ialah fungsi yang ditulis oleh pembangun PHP sendiri khusus untuk pengisihan tatasusunan berbilang dimensi. Ia sangat mudah untuk digunakan Anda hanya perlu lulus tatasusunan untuk diisih dan medan untuk diisih untuk melengkapkan pengisihan.
Kod sampel adalah seperti berikut:
// 定义一个二维数组 $array = array( array('name' => 'Tom', 'age' => 18), array('name' => 'Jerry', 'age' => 20), array('name' => 'Jack', 'age' => 22) ); // 根据age字段进行升序排序 array_sort($array, 'age', 'asc'); // 输出排序后的数组 print_r($array);
Dalam kod sampel di atas, kami juga mentakrifkan tatasusunan dua dimensi dan menggunakan fungsi array_sort() untuk mengisih tatasusunan dua dimensi dalam menaik pesanan mengikut bidang umur .
3. Ringkasan
Di atas adalah tiga kaedah untuk menyusun tatasusunan dua dimensi Setiap kaedah mempunyai ciri dan skop aplikasinya sendiri. Dalam pembangunan sebenar, anda boleh memilih kaedah yang sesuai untuk mengisih tatasusunan dua dimensi mengikut keperluan khusus.
Atas ialah kandungan terperinci Bagaimana untuk mengisih tatasusunan dua dimensi dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!