首頁 >後端開發 >php教程 >如何在 PHP 中按指定列對多維數組進行排序?

如何在 PHP 中按指定列對多維數組進行排序?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-29 22:39:33404瀏覽

How to Sort a Multidimensional Array by a Specified Column in PHP?

在PHP 中按指定列對多維數組進行排序

要在PHP 中按特定列對多維數組進行排序,請使用內建的在PHP 函數usortuasort中。排序的關鍵是提供自訂比較函數來決定陣列元素的順序。

用於排序的自訂比較函數

自訂比較函數接受兩個元素數組作為輸入並傳回一個整數:

  • 如果第一個元素被認為「大於」則為正整數第二個。
  • 如果第一個元素被認為「小於」第二個,則為負整數。
  • 如果元素被認為相等,則為零。

按單列排序

假設您有一個名為的多維數組$data 其中每個元素代表具有多列的記錄。若要依'name' 列對陣列進行排序,請使用以下程式碼:

usort($data, function($a, $b) {
  return strcmp($a['name'], $b['name']);
});

此自訂比較函數使用strcmp 函數來比較每個元素的'name' 欄位。排序後的陣列將根據 'name' 列按字母順序排列元素。

依多列排序

依多列排序,將附加參數傳遞給自訂比較函數。例如,要按 '數字' 排序,然後按 '名稱'排序:

usort($data, function($a, $b) {
  if ($a['number'] == $b['number']) {
    return strcmp($a['name'], $b['name']);
  }
  return $a['number'] - $b['number'];
});

進階功能

您也可以指定以下進階特點:

  • 反向排序:將比較函數的第二個參數設定為SORT_DESC,即可反轉排序順序。
  • 自訂投影:如果列值無法直接比較,請提供投影函數作為第三個參數來轉換他們。

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

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