Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk mengisih mengikut nilai tatasusunan dalam php
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:
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()
usort()
, 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()
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, 'compare_function'); 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()
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()
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()
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!