多維數組的自訂排序
對多維數組進行排序是程式設計中的常見任務。本文示範如何使用 PHP usort() 函數根據特定鍵對此類陣列進行排序。
理解任務
考慮以下多維數組,其中每個元素代表一條記錄:
Array (
[0] => Array
(
[iid] => 1
[invitee] => 174
[nid] => 324343
[showtime] => 2010-05-09 15:15:00
[location] => 13
[status] => 1
[created] => 2010-05-09 15:05:00
[updated] => 2010-05-09 16:24:00
)
[1] => Array
(
[iid] => 1
[invitee] => 220
[nid] => 21232
[showtime] => 2010-05-09 15:15:00
[location] => 12
[status] => 0
[created] => 2010-05-10 18:11:00
[updated] => 2010-05-10 18:11:00
))
按鍵排序
要按「status」鍵對此數組進行排序,我們需要定義一個比較函數來決定元素的順序。
function cmp($a, $b) {
if ($a['status'] == $b['status']) {
return 0;
}
return ($a['status'] 此函數比較兩個元素的「狀態」值。如果值相等,則傳回 0。如果第一個元素的「狀態」值低於第二個元素的「狀態」值,則傳回 -1。否則,它返回 1。
使用usort()
我們現在可以使用usort() 函數使用我們的比較函數對數組進行排序:
usort($array, "cmp");
這將根據「狀態」鍵。修改後的陣列將相應地重新排列其元素。
自訂比較
可以自訂比較函數以根據任意鍵對陣列進行排序。只需修改函數即可比較所需的鍵值。這提供了根據不同標準對多維數組進行排序的靈活性。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3