Bagaimana untuk mengekalkan nama kunci selepas menyusun tatasusunan PHP mengikut nilai?

PHPz
Lepaskan: 2024-05-02 16:09:02
asal
554 orang telah melayarinya

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.

PHP 数组按值排序后如何保持键名?

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);
Salin selepas log masuk

输出:

Array ( [b] => 5 [a] => 10 [c] => 20 )
Salin selepas log masuk

在上面的代码中:

  • usort()接受两个参数:要排序的数组$arr和一个用于比较元素值的匿名函数。
  • 匿名函数接收两个元素$a$b,并返回它们的差值。
  • usort()
  • Jika anda ingin mengisih tatasusunan mengikut nilai sambil mengekalkan nama kunci, anda boleh menggunakan fungsi usort()seperti berikut:
  • $students = array( 'John' => 90, 'Jane' => 85, 'Peter' => 95 );
    Salin selepas log masuk
  • Output:
usort($students, function($a, $b) { return $a - $b; });
Salin selepas log masuk

Dalam kod di atas:< ul>usort()menerima dua parameter: tatasusunan untuk mengisih$arrdan fungsi tanpa nama untuk membandingkan nilai elemen.

Fungsi tanpa nama menerima dua elemen$adan$bdan 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 )
Salin selepas log masuk
Untuk mengisih nama pelajar dalam susunan menaik mengikut gred sambil mengekalkan nama sebagai kunci, anda boleh menggunakan kod berikut: rrreeeOutputreee

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!