在 PHP 中按多个键对多维数组进行排序
phpserver side programmingprogramming更新于 2025/9/8 17:22:17
array_multisort 函数可用于根据多个键对多维数组进行排序 −
示例
$my_list = array(
array('ID' => 1, 'title' => 'data one', 'event_type' => 'one'),
array('ID' => 2, 'title' => 'data two', 'event_type' => 'zero'),
array('ID' => 3, 'title' => 'data three', 'event_type' => 'one'),
array('ID' => 4, 'title' => 'data four', 'event_type' => 'zero')
);
# 可以获取已排序的列及其数据的列表。这将传递给 array_multisort 函数。
$sort = array();
foreach($my_list as $k=>$v) {
$sort['title'][$k] = $v['title'];
$sort['event_type'][$k] = $v['event_type'];
}
# 它按 event_type 降序排列,title 按升序排列。
array_multisort($sort['event_type'], SORT_DESC, $sort['title'], SORT_ASC,$my_list);
适用于 PHP 5.5.0 版本 −
array_multisort(array_column($my_list, 'event_type'), SORT_DESC, array_column($my_list, 'title'), SORT_ASC, $my_list);
输出
这将产生以下输出 −
array ( 0 => array ( 'ID' => 4, 'title' => 'data four', 'event_type' => 'zero', ), 1 => array ( 'ID' => 3, 'title' => 'data two', 'event_type' => 'zero', ), 2 => array ( 'ID' => 1, 'title' => 'data one', 'event_type' => 'one', ), 3 => array ( 'ID' => 2, 'title' => 'data three', 'event_type' => 'one', ), )

