Rumah > Artikel > pembangunan bahagian belakang > Pengenalan kepada penggunaan fungsi usort() dalam pustaka fungsi PHP
PHP ialah bahasa pengaturcaraan yang digunakan secara meluas dengan banyak fungsi yang biasa digunakan untuk digunakan oleh pembangun. usort() ialah salah satu daripadanya. Fungsi utama usort() adalah untuk mengisih tatasusunan mengikut fungsi perbandingan yang ditentukan. Sintaks fungsi
usort() adalah seperti berikut:
usort(array $array, callable $cmp_function): bool
Dalam kod di atas, $array
mewakili tatasusunan yang hendak diisih dan $cmp_function
ialah fungsi perbandingan boleh dipanggil. Nilai pulangan ialah jenis Boolean, menunjukkan sama ada pengisihan berjaya. $array
表示要排序的数组,$cmp_function
是一个可调用的比较函数。返回值是布尔类型,表示排序是否成功。
下面就对 usort() 函数进行详细介绍。
usort() 函数中传入的比较函数必须是可调用的,也就是说可以被调用执行的函数。比较函数一般在调用 usort() 时定义,通过一个匿名函数或是指定函数名称的方式来定义。比如,你可以这样来定义一个比较函数:
function cmp($a, $b) { if ($a == $b) { return 0; } return ($a < $b) ? -1 : 1; }
在这个比较函数中,$a
和 $b
分别代表 usort() 函数传入的要比较的两个参数。根据自己的需求,你可以自定义比较函数的实现方法。比较函数返回值可以是 0、-1 或 1。若返回 0,则代表两个参数相等;若返回 -1,则代表 $a
比 $b
小;若返回 1,则代表 $a
比 $b
大。
接下来,我们来看一下如何使用 usort() 函数来对数组进行排序。假设我们有一个数组,其中包含如下元素:
$array = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3];
如果我们想对这个数组进行排序,可以使用 usort() 函数:
usort($array, "cmp");
这里的 "cmp"
[1, 1, 2, 3, 3, 4, 5, 5, 6, 9]Dalam fungsi perbandingan ini,
$a
dan $b
masing-masing mewakili nilai yang dihantar oleh usort () fungsi untuk dibandingkan. Mengikut keperluan anda sendiri, anda boleh menyesuaikan kaedah pelaksanaan fungsi perbandingan. Nilai pulangan fungsi perbandingan boleh menjadi 0, -1, atau 1. Jika 0 dikembalikan, ini bermakna dua parameter adalah sama jika -1 dikembalikan, ini bermakna $a
adalah lebih kecil daripada $b
jika 1 dikembalikan, ini bermakna $a
lebih besar daripada $b
. Cara menggunakanSeterusnya, mari kita lihat cara menggunakan fungsi usort() untuk mengisih tatasusunan. Katakan kita mempunyai tatasusunan yang mengandungi elemen berikut: $students = [ ["name" => "Alice", "age" => 18], ["name" => "Bob", "age" => 20], ["name" => "Charlie", "age" => 19], ];Jika kita ingin mengisih tatasusunan ini, kita boleh menggunakan fungsi usort():
function cmp_age($a, $b) { if ($a["age"] == $b["age"]) { return 0; } return ($a["age"] < $b["age"]) ? -1 : 1; }
"cmp"
di sini ialah perbandingan yang kami takrifkan Nama fungsi. Selepas menjalankan kod di atas, anda boleh mendapatkan tatasusunan yang diisih: usort($students, "cmp_age");
[ ["name" => "Alice", "age" => 18], ["name" => "Charlie", "age" => 19], ["name" => "Bob", "age" => 20], ]
Atas ialah kandungan terperinci Pengenalan kepada penggunaan fungsi usort() dalam pustaka fungsi PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!