Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Mengisih Tatasusunan PHP Berbilang Dimensi mengikut Nilai Medan Dalam?

Bagaimana untuk Mengisih Tatasusunan PHP Berbilang Dimensi mengikut Nilai Medan Dalam?

Linda Hamilton
Linda Hamiltonasal
2024-12-18 16:33:12608semak imbas

How to Sort a Multidimensional PHP Array by an Inner Field's Value?

Mengisih Tatasusunan Berbilang Dimensi mengikut Medan Dalam dalam PHP

Andaikan kita mempunyai tatasusunan berbilang dimensi yang menyerupai jadual pangkalan data, dengan setiap elemen tatasusunan luar mewakili baris dan setiap tatasusunan dalam mengandungi nama medan dan nilai. Kami ingin mengisih baris (elemen tatasusunan luar) mengikut medan tertentu, seperti "harga."

Untuk mencapai ini, kami boleh menggunakan fungsi PHP berikut:

array_multisort(array_column($yourArray, "price"), SORT_ASC, $yourArray);

Ini baris mencapai hasil yang kita inginkan dengan cara yang ringkas. Fungsi array_multisort() mengambil tiga argumen:

  1. array_column($yourArray, "price") - Mengekstrak nilai medan "price" daripada setiap tatasusunan dalam ke dalam tatasusunan satu dimensi.
  2. SORT_ASC - Menentukan bahawa medan "harga" harus diisih dalam menaik pesanan.
  3. $yourArray - Tatasusunan berbilang dimensi untuk diisih.

Dengan merantai fungsi ini bersama-sama, kita boleh mengisih elemen tatasusunan luar mengikut medan "harga" dengan berkesan. Adalah penting untuk ambil perhatian bahawa proses ini menimpa pembolehubah $yourArray asal, jadi menetapkan hasil kepada pembolehubah yang berbeza adalah dinasihatkan jika susunan asal perlu dikekalkan.

Kemas kini:

  • Dalam versi PHP 7 terkini, menghantar pembolehubah melalui rujukan menggunakan "&" boleh menyebabkan ralat. Untuk menyelesaikan masalah ini, penyelesaian dua baris berikut boleh digunakan:
$col = array_column($yourArray, "price");
array_multisort($col, SORT_ASC, $yourArray);
  • PHP 8 menghapuskan isu ini, membenarkan penyelesaian satu baris digunakan tanpa sebarang pelarasan.

Atas ialah kandungan terperinci Bagaimana untuk Mengisih Tatasusunan PHP Berbilang Dimensi mengikut Nilai Medan Dalam?. 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