Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Isih Tatasusunan PHP Berbilang Dimensi dengan Nilai Subarray?

Bagaimanakah Saya Boleh Isih Tatasusunan PHP Berbilang Dimensi dengan Nilai Subarray?

DDD
DDDasal
2024-12-10 02:59:13401semak imbas

How Can I Sort a Multidimensional PHP Array by a Subarray Value?

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!

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