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

Bagaimana Mengisih Tatasusunan PHP Berbilang Dimensi Berdasarkan Nilai Tatasusunan Dalam?

Susan Sarandon
Susan Sarandonasal
2024-11-03 03:40:31646semak imbas

How to Sort Multi-Dimensional PHP Arrays Based on Inner Array Values?

Mengisih Tatasusunan PHP Berbilang Dimensi Berdasarkan Nilai Tatasusunan Dalam

Mengisih tatasusunan berbilang dimensi boleh menjadi rumit, terutamanya apabila parameter pengisihan adalah dikebumikan dalam tatasusunan bersarang. Untuk mengisih jadual hash PHP berdasarkan nilai dalam tatasusunan dalam, seperti mengisih tatasusunan mengikut kekunci 'nama', fungsi pengisihan tersuai diperlukan.

Mencipta Fungsi Isih Tersuai

Satu kaedah untuk mengisih berdasarkan nilai bersarang ialah mencipta fungsi pengisihan tersuai yang mengekstrak nilai yang dikehendaki daripada tatasusunan dalam:

<code class="php">function cmp($a, $b) {
    return $b['name'] - $a['name'];
}</code>

Dalam contoh ini, fungsi cmp membandingkan kekunci 'nama' dalam tatasusunan dalam. Isih dalam tertib menurun dicapai dengan menolak nilai daripada menambahnya.

Menggunakan Fungsi Isih

Untuk menggunakan fungsi isihan tersuai, gunakan usort pada tatasusunan:

<code class="php">usort($mydata, "cmp");</code>

Ini mengisih tatasusunan $mydata dalam susunan menurun berdasarkan kekunci 'nama' dalam tatasusunan dalam.

Kaedah Alternatif

Bergantung pada kes penggunaan tertentu, pilihan lain untuk mengisih tatasusunan berbilang dimensi ialah fungsi array_sort:

<code class="php">function array_sort($array, $on, $order=SORT_ASC){

   // ... (function definition) ...

   // ... (sorting logic) ...

}</code>

Fungsi array_sort boleh digunakan seperti berikut untuk mengisih dalam tertib menaik dengan kekunci 'nama':

<code class="php">$list = array(
   array( 'type' => 'suite', 'name' => 'A-Name'),
   array( 'type' => 'suite', 'name' => 'C-Name'),
   array( 'type' => 'suite', 'name' => 'B-Name')
);

$list = array_sort($list, 'name', SORT_ASC);</code>

Kaedah alternatif ini menyediakan penyelesaian komprehensif untuk menyusun tatasusunan berbilang dimensi berdasarkan nilai dalam tatasusunan dalam.

Atas ialah kandungan terperinci Bagaimana Mengisih Tatasusunan PHP Berbilang Dimensi Berdasarkan Nilai Tatasusunan 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