按鍵對多維數組進行排序:綜合指南
按特定順序排列多維數組的元素可能是常見要求在編程中。按特定鍵排序提供了組織和檢索資料的有效方法。
考慮以下包含邀請的多維數組:
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 ))
要按「狀態」鍵對此數組進行排序,我們可以使用 usort() 函數和自訂比較函數。
自訂比較函數
比較函數透過比較元素的鍵來決定元素的順序。這是一個基於「status」鍵進行比較的函數:
function cmp($a, $b) { if ($a['status'] == $b['status']) { return 0; } return ($a['status'] < $b['status']) ? -1 : 1; }
當$a 應該在$b 之前時,函數傳回-1;當$a 應該在$b 之後時,函數傳回1;當$a 應該在$b 之後時,函數傳回0
對陣列進行排序
我們現在可以使用usort() 對陣列進行排序:
usort($array, "cmp");
這將對陣列進行排序「狀態」鍵依升序排列。如果我們想要顛倒順序,我們可以使用 rsort():
rsort($array, "cmp");
透過利用提供的比較函數和排序函數,我們可以輕鬆地按任何所需的鍵對多維數組進行排序。
以上是如何按鍵對多維數組進行排序:分步解決方案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!