Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana Mengisih Tatasusunan PHP Berbilang Dimensi Berdasarkan Nilai Tatasusunan Dalam?
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!