PHP menyediakan dua cara untuk mengisih tatasusunan bersekutu mengikut nilai: Gunakan fungsi asort(): Isih nilai dari kecil ke besar sambil mengekalkan nama kunci asal. Menggunakan fungsi usort() dan penutupan: Isih nilai mengikut fungsi perbandingan tersuai sambil mengekalkan nama kunci asal.
Gunakan fungsiasort()
asort()
函数
PHP 的asort()
函数可按值对关联数组进行排序,同时保留原始键名。它接受一个关联数组作为参数,并按照从小到大的顺序对值进行排序。
5, "banana" => 3, "orange" => 2, "grape" => 4, ]; asort($arr); print_r($arr); ?>
输出:
Array ( [orange] => 2 [banana] => 3 [grape] => 4 [apple] => 5 )
如你所见,数组的值已按从小到大的顺序排序,但键名保留不变。
使用usort()
函数和闭包
另一种方法是使用usort()
函数和闭包。usort()
接受一个回调函数作为参数,该函数用于比较数组中的元素。闭包是一种匿名函数,可用作回调。
5, "banana" => 3, "orange" => 2, "grape" => 4, ]; usort($arr, function ($a, $b) { return $a[1] - $b[1]; }); print_r($arr); ?>
输出:
Array ( [orange] => 2 [banana] => 3 [grape] => 4 [apple] => 5 )
在这种情况下,闭包会比较每个元素的值 ($a[1]
和$b[1]
),并返回-1
、0
或1
asort()
PHP mengisih tatasusunan bersekutu mengikut nilai sambil mengekalkan nama kunci asal. Ia menerima tatasusunan bersekutu sebagai hujah dan mengisih nilai daripada terkecil kepada terbesar. rrreeeOutput: rrreeeSeperti yang anda lihat, nilai tatasusunan telah diisih dari kecil ke besar, tetapi nama kunci kekal tidak berubah. Gunakan fungsi dan penutupan
usort()
Cara lain ialah menggunakan fungsi dan penutupan
usort()
.
usort()
menerima fungsi panggil balik sebagai parameter, yang digunakan untuk membandingkan elemen dalam tatasusunan. Penutupan ialah fungsi tanpa nama yang boleh digunakan sebagai panggilan balik. rrreeeOutput: rrreeeDalam kes ini, penutupan membandingkan nilai setiap elemen (
$a[1]
dan
$b[1]
) , dan mengembalikan
-1
,
0
atau
1
, bergantung pada nilai yang lebih besar.
Atas ialah kandungan terperinci PHP Bagaimana untuk mengisih tatasusunan mengikut nilai sambil mengekalkan nama kunci asal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!