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

Bagaimana untuk mengisih mengikut nilai tatasusunan dalam php

PHPz
Lepaskan: 2023-04-26 09:43:27
asal
2887 orang telah melayarinya

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

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan