按值對多維數組進行排序
按多維數組中的特定鍵值對資料進行排序是一項常見任務。這可以透過將使用者定義的排序函數與 usort() 或 uasort() 函數結合使用來實現。
要按「order」鍵對陣列進行排序,可以執行下列步驟:
function sortByOrder($a, $b) { if ($a['order'] > $b['order']) { return 1; } elseif ($a['order'] < $b['order']) { return -1; } return 0; }
usort($myArray, 'sortByOrder');
usort($myArray, function($a, $b) { if ($a['order'] > $b['order']) { return 1; } elseif ($a['order'] < $b['order']) { return -1; } return 0; });
usort($myArray, function($a, $b) { return $a['order'] <=> $b['order']; });
usort($myArray, fn($a, $b) => $a['order'] <=> $b['order']);
多維排序:
要將排序擴展到多個維度,可以遞歸地使用排序函數:usort($myArray, function($a, $b) { $retval = $a['order'] <=> $b['order']; if ($retval == 0) { $retval = $a['suborder'] <=> $b['suborder']; if ($retval == 0) { $retval = $a['details']['subsuborder'] <=> $b['details']['subsuborder']; } } return $retval; });
保留金鑰關聯:
要在排序期間保持關鍵關聯,請使用 uasort() 而不是 usort()。有關數組排序函數的比較,請參閱 PHP 手冊。以上是如何在 PHP 中按值對多維數組進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!