Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mengisih mengikut nilai tatasusunan dalam php

Bagaimana untuk mengisih mengikut nilai tatasusunan dalam php

PHPz
PHPzasal
2023-04-26 09:08:282750semak imbas

Dalam PHP, kita boleh mengisih tatasusunan dalam tertib menaik dan menurun menggunakan fungsi terbina dalam sort() dan rsort(). Walau bagaimanapun, kedua-dua fungsi ini hanya boleh mengisih kekunci tatasusunan mengikut nilai kunci Jika anda ingin mengisih nilai dalam tatasusunan mengikut nilai kunci, anda perlu menggunakan fungsi lain.

Berikut ialah beberapa cara untuk mengisih mengikut nilai tatasusunan:

1 Menggunakan asort() dan arsort()

Dalam PHP, kita boleh menggunakan fungsi terbina dalam <.> Isih tatasusunan dalam tertib menaik mengikut nilai, gunakan asort() untuk mengisih tatasusunan dalam tertib menurun mengikut nilai. Kedua-dua fungsi ini juga mengekalkan perkaitan antara nilai utama. arsort()

$numbers = array(3, 1, 5, 2, 4);
asort($numbers);
print_r($numbers);
// Output: Array ( [1] => 1 [3] => 2 [0] => 3 [4] => 4 [2] => 5 )

arsort($numbers);
print_r($numbers);
// Output: Array ( [2] => 5 [4] => 4 [0] => 3 [3] => 2 [1] => 1 )
Perhatikan bahawa jika kita menggunakan

dan sort() untuk mengisih tatasusunan mengikut nilai kunci, kita akan kehilangan perkaitan antara nilai kunci dan nilai. Dan rsort() dan asort() boleh mengekalkan perkaitan antara kunci dan nilai. arsort()

2. Gunakan

usort()

PHP juga menyediakan fungsi

, yang boleh mengisih tatasusunan mengikut fungsi perbandingan tersuai. Fungsi perbandingan perlu menerima dua parameter Jika parameter pertama kurang daripada parameter kedua, fungsi mengembalikan nilai negatif jika dua parameter adalah sama, fungsi mengembalikan 0 jika parameter pertama lebih besar daripada parameter kedua; fungsi mengembalikan nilai positif. usort()

Berikut ialah contoh penggunaan

untuk mengisih tatasusunan dalam tertib menaik mengikut nilai: usort()

$numbers = array(3, 1, 5, 2, 4);

function compare_function($a, $b)
{
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}

usort($numbers, &#39;compare_function&#39;);
print_r($numbers);
// Output: Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
3 Terdapat satu lagi cara biasa untuk menggunakan

array_multisort()

Fungsi

digunakan, yang boleh mengisih berbilang tatasusunan pada masa yang sama. Kita boleh lulus dalam tatasusunan dan kaedah pengisihan, dan kemudian fungsi itu akan mengisih nilai tatasusunan mengikut kaedah pengisihan. array_multisort()

Berikut ialah contoh penggunaan fungsi

untuk mengisih tatasusunan dalam tertib menaik: array_multisort()

$numbers = array(3, 1, 5, 2, 4);
array_multisort($numbers, SORT_ASC);
print_r($numbers);
// Output: Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
Perhatikan bahawa fungsi

mengisih semua tatasusunan. Jika anda perlu mengisih mengikut tatasusunan tertentu, anda perlu meletakkan tatasusunan ini dalam parameter pertama. array_multisort()

Ringkasan

Terdapat banyak cara untuk melaksanakan pengisihan mengikut nilai tatasusunan dalam PHP, dan perkara di atas hanyalah sebahagian daripadanya. Apabila menggunakan fungsi ini, anda perlu memberi perhatian kepada jenis dan kedudukan parameter, serta pilihan kaedah pengisihan. Pada masa yang sama, apabila terdapat berbilang parameter yang perlu diisih, menggunakan

boleh menjadikan pemprosesan lebih mudah. array_multisort()

Atas ialah kandungan terperinci Bagaimana untuk mengisih mengikut nilai tatasusunan dalam php. 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