Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Isih Tatasusunan PHP Berbilang Dimensi dengan Nilai Subarray?
Mengisih Tatasusunan Berbilang Dimensi mengikut Nilai Subarray
Mengisih tatasusunan mengikut nilai tertentu boleh menjadi teknik yang berharga apabila mengatur data untuk mendapatkan semula dan pemprosesan yang cekap. Dalam PHP, anda mungkin menghadapi keperluan untuk memesan tatasusunan berbilang dimensi berdasarkan nilai subarray, seperti "optionNumber."
Isih Menggunakan usort
Fungsi usort ialah alat yang berkesan untuk menyusun tatasusunan menggunakan fungsi perbandingan yang ditentukan pengguna. Berikut ialah contoh menggunakan usort untuk mengisih tatasusunan yang diberikan mengikut nilai subbaris "optionNumber":
function cmp_by_optionNumber($a, $b) { return $a["optionNumber"] - $b["optionNumber"]; } ... usort($array, "cmp_by_optionNumber");
Pendekatan Fungsi Tanpa Nama (PHP 5.3 dan Ke Atas)
Dalam PHP versi 5.3 dan ke atas, anda boleh menggunakan fungsi tanpa nama sebagai fungsi perbandingan untuk usort. Ini memudahkan lagi kod:
usort($array, function ($a, $b) { return $a['optionNumber'] - $b['optionNumber']; });
Operator Kapal Angkasa (PHP 7.0 dan Ke Atas)
PHP 7.0 memperkenalkan pengendali kapal angkasa ( <=> ) yang menyediakan cara alternatif untuk membandingkan nilai. Ia mengembalikan -1 jika $a kurang daripada $b, 0 jika sama, dan 1 jika $a lebih besar daripada $b. Ini menghapuskan potensi isu limpahan atau pemangkasan dalam perbandingan:
usort($array, function ($a, $b) { return $a['optionNumber'] <=> $b['optionNumber']; });
Nota Penting
Apabila menggunakan usort, adalah penting untuk memastikan bahawa nilai subbaris anda adalah pengisihan ialah integer atau rentetan angka. Jika nilainya ialah rentetan, gunakan fungsi perbandingan rentetan yang sesuai untuk mencapai susunan isihan yang diingini.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Isih Tatasusunan PHP Berbilang Dimensi dengan Nilai Subarray?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!