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
Barbara Streisandasal
2024-12-10 04:16:18280semak imbas

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"];
    }

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

    usort($array, function ($a, $b) {
      return $a['optionNumber'] - $b['optionNumber'];
    });
  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");
  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"]);
    }
  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'];
    });

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!

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