Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mengekalkan nama kunci selepas menyusun tatasusunan PHP mengikut nilai?

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

PHPz
PHPzasal
2024-05-02 16:09:02580semak imbas

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 fungsi asort() untuk mengisih tatasusunan dalam tertib menaik mengikut nilai, atau fungsi arsort() 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()
  • 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
    );
  • Output:
usort($students, function($a, $b) {
    return $a - $b;
});

Dalam kod di atas: 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 Praktikal🎜🎜🎜Pertimbangkan tatasusunan yang mengandungi gred pelajar: 🎜
Array
(
    [Jane] => 85
    [John] => 90
    [Peter] => 95
)
🎜Untuk mengisih nama pelajar dalam susunan menaik mengikut gred sambil mengekalkan nama sebagai kunci, anda boleh menggunakan kod berikut: 🎜rrreee🎜Outputreee🎜

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!

Kenyataan:
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