Cara mengisih tatasusunan mengikut nilai dalam PHP sambil mengekalkan nama kunci ialah menggunakan fungsi usort() untuk mengisih tatasusunan mengikut nilai. Fungsi usort() diluluskan fungsi tanpa nama sebagai fungsi perbandingan yang mengembalikan perbezaan dalam nilai elemen. usort() mengisih tatasusunan mengikut fungsi tanpa nama sambil mengekalkan kekunci tidak berubah.
Bagaimana untuk mengisih tatasusunan mengikut nilai dalam PHP dan mengekalkan nama kunci?
Dalam PHP, anda boleh menggunakan fungsiasort()
untuk mengisih tatasusunan dalam tertib menaik mengikut nilai, atau fungsiarsort()
untuk mengisih tatasusunan dalam menurun pesanan. Walau bagaimanapun, kedua-dua fungsi memusnahkan kunci dalam tatasusunan.asort()
函数根据值对数组进行升序排序,或使用arsort()
函数进行降序排序。但是,这两个函数都会破坏数组中的键名。
如果要按值排序数组,同时保持键名,可以使用usort()
函数,如下所示:
$arr = array( 'a' => 10, 'b' => 5, 'c' => 20 ); usort($arr, function($a, $b) { return $a - $b; }); print_r($arr);
输出:
Array ( [b] => 5 [a] => 10 [c] => 20 )
在上面的代码中:
usort()
接受两个参数:要排序的数组$arr
和一个用于比较元素值的匿名函数。$a
和$b
,并返回它们的差值。usort()
usort()
seperti berikut:
$students = array( 'John' => 90, 'Jane' => 85, 'Peter' => 95 );
usort($students, function($a, $b) { return $a - $b; });
Dalam kod di atas:< ul>usort()
menerima dua parameter: tatasusunan untuk mengisih$arr
dan fungsi tanpa nama untuk membandingkan nilai elemen.
Fungsi tanpa nama menerima dua elemen$a
dan$b
dan mengembalikan perbezaannya.
usort()
akan mengisih elemen dalam tatasusunan, menggunakan fungsi tanpa nama sebagai fungsi perbandingan.
Selepas mengisih, nama kunci dalam tatasusunan kekal tidak berubah.
Contoh PraktikalPertimbangkan tatasusunan yang mengandungi gred pelajar:Array ( [Jane] => 85 [John] => 90 [Peter] => 95 )
Atas ialah kandungan terperinci Bagaimana untuk mengekalkan nama kunci selepas menyusun tatasusunan PHP mengikut nilai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!