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
Lepaskan: 2024-11-03 03:40:31
asal
645 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

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