首頁 >後端開發 >php教程 >如何根據內部數組值對多維 PHP 數組進行排序?

如何根據內部數組值對多維 PHP 數組進行排序?

Susan Sarandon
Susan Sarandon原創
2024-11-03 03:40:31646瀏覽

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

根據內部數組值對多維PHP 數組進行排序

對多維數組進行排序可能很棘手,尤其是當排序參數為埋藏在嵌套數組中。要根據內部數組中的值對 PHP 雜湊表進行排序,例如按「name」鍵對數組數組進行排序,需要自訂排序函數。

建立自訂排序函數

基於巢狀值排序的一種方法是建立一個自訂排序函數,從內部陣列中提取所需的值:

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

在此範例中,cmp 函數比較內部陣列中的「名稱」鍵。透過減去值而不是相加來實現降序排序。

使用排序函數

要使用自訂排序函數,請將usort 套用於陣列:

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

這會根據內部陣列中的'name' 鍵對$mydata 陣列進行降序排序。

替代方法

根據特定的用例,對多維數組進行排序的另一個選項是array_sort 函數:

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

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

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

}</code>

array_sort 函數可以如下使用,按'name' 鍵升序排序:

<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>

這種替代方法提供了一種基於內部數組中的值對多維數組進行排序的全面解決方案。

以上是如何根據內部數組值對多維 PHP 數組進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn