Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Mengisih Tatasusunan PHP bagi Subarray mengikut Nilai Subarray Tertentu?

Bagaimanakah Saya Boleh Mengisih Tatasusunan PHP bagi Subarray mengikut Nilai Subarray Tertentu?

Barbara Streisand
Lepaskan: 2024-12-10 04:16:18
asal
368 orang telah melayarinya

How Can I Sort a PHP Array of Subarrays by a Specific Subarray Value?

Mengisih Tatasusunan PHP mengikut Nilai Subarray: Panduan Langkah demi Langkah

Untuk menyusun struktur tatasusunan berdasarkan nilai subarray tertentu, pendekatan yang paling cekap ialah menggunakan fungsi usort PHP. Kaedah ini menggunakan fungsi pengisihan yang ditakrifkan pengguna untuk menyusun elemen dalam susunan tersuai.

Dalam contoh yang diberikan, tugasnya adalah untuk mengisih tatasusunan subarray berdasarkan medan "optionNumber" dalam susunan tambahan. Untuk mencapai ini, ikuti langkah berikut:

  1. Tentukan Fungsi Perbandingan Tersuai:
    Buat fungsi yang membandingkan dua subarray berdasarkan medan yang dikehendaki. Dalam kes ini, ia akan membandingkan nilai "optionNumber". Untuk versi PHP sebelum 5.3, gunakan fungsi bernama seperti ini:

    function cmp_by_optionNumber($a, $b) {
      return $a["optionNumber"] - $b["optionNumber"];
    }
    Salin selepas log masuk

    Untuk PHP 5.3 dan ke atas, fungsi tanpa nama boleh digunakan sebaliknya:

    usort($array, function ($a, $b) {
      return $a['optionNumber'] - $b['optionNumber'];
    });
    Salin selepas log masuk
  2. Gunakan Fungsi usort:
    Panggil fungsi usort pada tatasusunan input, lulus perbandingan berfungsi sebagai parameter. Ini akan mengisih tatasusunan dalam susunan yang dikehendaki.

    usort($array, "cmp_by_optionNumber");
    Salin selepas log masuk
  3. Kaedah Alternatif untuk Perbandingan Rentetan:
    Jika nilai "optionNumber" adalah rentetan dan bukannya integer, ubah suai fungsi perbandingan untuk menggunakan perbandingan rentetan dan bukannya penolakan.

    function cmp_by_optionNumber($a, $b) {
      return strcmp($a["optionNumber"], $b["optionNumber"]);
    }
    Salin selepas log masuk
  4. PHP 7.0 dan Ke Atas:
    Dalam PHP 7.0 dan lebih baru, pengendali kapal angkasa (<=>) boleh digunakan bukannya penolakan untuk perbandingan yang lebih tepat dan untuk mengelakkan limpahan angka isu.

    usort($array, function ($a, $b) {
      return $a['optionNumber'] <=> $b['optionNumber'];
    });
    Salin selepas log masuk

Dengan mengikut langkah-langkah ini, anda boleh mengisih tatasusunan subarray dengan berkesan berdasarkan nilai tertentu, memastikan unsur-unsur disusun mengikut susunan tambahan yang dikehendaki.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengisih Tatasusunan PHP bagi Subarray mengikut Nilai Subarray Tertentu?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan