Kaedah untuk mengisih tatasusunan dalam PHP ialah: gunakan fungsi sort() untuk mengisih dalam tertib menaik. Gunakan fungsi rsort() untuk mengisih dalam tertib menurun. Gunakan fungsi asort() untuk mengisih nilai dalam tatasusunan bersekutu dalam tertib menaik. Gunakan fungsi arsort() untuk mengisih nilai dalam susunan menurun untuk tatasusunan bersekutu. Gunakan fungsi perbandingan tersuai untuk pengisihan yang lebih kompleks.
Cara Mengisih Tatasusunan PHP Berdasarkan Perbandingan Nilai Tatasusunan
Dalam PHP, terdapat pelbagai cara untuk mengisih tatasusunan berdasarkan perbandingan nilai tatasusunan. Artikel ini akan memperkenalkan penggunaan fungsi terbina dalam sort()
, rsort()
, asort()
, arsort( )
dan Cara biasa untuk mengisih tatasusunan adalah dengan fungsi perbandingan tersuai. sort()
、rsort()
、asort()
、arsort()
和自定义比较函数对数组进行排序的常见方法。
使用 sort()
函数:
sort()
函数对数组中的值进行从小到大的升序排列。
$arr = [3, 5, 2, 7, 1]; sort($arr); print_r($arr); // 输出: [1, 2, 3, 5, 7]
使用 rsort()
函数:
rsort()
函数对数组中的值进行从大到小的降序排列。
$arr = [3, 5, 2, 7, 1]; rsort($arr); print_r($arr); // 输出: [7, 5, 3, 2, 1]
使用 asort()
函数:
asort()
函数对关联数组中的值进行从小到大的升序排列,键保持不变。
$arr = [ "name" => "John", "age" => 30, "city" => "New York" ]; asort($arr); print_r($arr); // 输出: [ // "age" => 30, // "city" => "New York", // "name" => "John" // ]
使用 arsort()
函数:
arsort()
函数对关联数组中的值进行从大到小的降序排列,键保持不变。
$arr = [ "name" => "John", "age" => 30, "city" => "New York" ]; arsort($arr); print_r($arr); // 输出: [ // "name" => "John", // "city" => "New York", // "age" => 30 // ]
使用自定义比较函数:
对于更复杂的排序要求,可以使用自定义比较函数。比较函数接受两个参数,并返回 -1、0 或 1,具体取决于第一个参数是否小于、等于或大于第二个参数。
function custom_sort($a, $b) { return strcmp($a["name"], $b["name"]); } $arr = [ ["name" => "John", "age" => 30], ["name" => "Mary", "age" => 25], ["name" => "Bob", "age" => 35] ]; usort($arr, "custom_sort"); print_r($arr); // 输出: [ // ["name" => "Bob", "age" => 35], // ["name" => "John", "age" => 30], // ["name" => "Mary", "age" => 25] // ]
实战案例:
以下是一个实战案例,展示了如何使用 sort()
sort()
: 🎜🎜🎜sort()
fungsi mengisih nilai dalam tatasusunan dalam tertib menaik dari kecil ke besar. 🎜$characters = [ ["name" => "Mario", "level" => 5], ["name" => "Luigi", "level" => 3], ["name" => "Donkey Kong", "level" => 7] ]; sort($characters); print_r($characters); // 输出: [ // ["name" => "Donkey Kong", "level" => 7], // ["name" => "Luigi", "level" => 3], // ["name" => "Mario", "level" => 5] // ]
rsort()
: 🎜🎜🎜rsort()
Fungsi mengisih nilai dalam tatasusunan dalam tertib menurun dari besar ke kecil. 🎜rrreee🎜🎜Gunakan fungsi asort()
: 🎜🎜🎜asort()
Fungsi mengisih nilai dalam tatasusunan bersekutu dalam tertib menaik dari kecil ke besar, dan kunci kekal tidak berubah. 🎜rrreee🎜🎜Gunakan fungsi arsort()
: 🎜🎜🎜arsort()
Fungsi mengisih nilai dalam tatasusunan bersekutu dalam tertib menurun dari besar ke kecil, dan kunci kekal tidak berubah. 🎜rrreee🎜🎜Gunakan fungsi perbandingan tersuai: 🎜🎜🎜Untuk keperluan pengisihan yang lebih kompleks, anda boleh menggunakan fungsi perbandingan tersuai. Fungsi perbandingan menerima dua argumen dan mengembalikan -1, 0, atau 1, bergantung pada sama ada argumen pertama kurang daripada, sama dengan atau lebih besar daripada argumen kedua. 🎜rrreee🎜🎜Satu kes praktikal: 🎜🎜🎜Berikut ialah kes praktikal yang menunjukkan cara menggunakan fungsi sort()
untuk mengisih susunan aksara permainan video dalam tertib menaik mengikut nama: 🎜rrreeeAtas ialah kandungan terperinci Dalam PHP, bagaimana untuk mengisih tatasusunan berdasarkan perbandingan nilai tatasusunan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!