php中多维数组的排序和分组
我需要一些在php中排序多维数组的帮助。我需要将数组分组为月份,然后按月份排序。这是我的原始阵列:php中多维数组的排序和分组,php,sorting,multidimensional-array,grouping,Php,Sorting,Multidimensional Array,Grouping,我需要一些在php中排序多维数组的帮助。我需要将数组分组为月份,然后按月份排序。这是我的原始阵列: Array ( [0] => Array ( [IdEvent] => 5 [EventName] => Copy of Opening snow weekend [Year] => 2011 [Month] => 08 )
Array
(
[0] => Array
(
[IdEvent] => 5
[EventName] => Copy of Opening snow weekend
[Year] => 2011
[Month] => 08
)
[1] => Array
(
[IdEvent] => 7
[EventName] => Copy of Copy of Opening snow weekend
[Year] => 2011
[Month] => 07
)
[2] => Array
(
[IdEvent] => 1
[EventName] => Opening snow weekend
[Year] => 2011
[Month] => 05
)
[3] => Array
(
[IdEvent] => 6
[EventName] => Copy of Opening snow weekend
[Year] => 2011
[Month] => 05
)
)
以下是我希望得到的:
Array
(
[0] => Array (
[0] => Array
(
[IdEvent] => 1
[EventName] => Opening snow weekend
[Year] => 2011
[Month] => 05
)
[1] => Array
(
[IdEvent] => 6
[EventName] => Copy of Opening snow weekend
[Year] => 2011
[Month] => 05
)
)
[1] => Array (
[0] => Array
(
[IdEvent] => 7
[EventName] => Copy of Copy of Opening snow weekend
[Year] => 2011
[Month] => 07
)
)
[2] => Array (
[0] => Array
(
[IdEvent] => 5
[EventName] => Copy of Opening snow weekend
[Year] => 2011
[Month] => 08
)
)
)
我会为每个月的容器使用一个易于排序的键,然后只使用ksort
$months = array();
foreach ($input_array AS $arr) {
$months[$arr['Month']][] = $arr;
}
ksort($months);
如果需要,您可以使用
array\u values
将其转换为标准的整数键数组可能是这样的:
$sortedArray = array();
foreach ($unsortedArray as $key => $row) {
$month[$key] = $row['month'];
$year[$key] = $row['year'];
}
$sortedArray = array_multisort($year, SORT_ASC, $month, SORT_ASC, $unsortedArray);
- 完全未经试验,未经测试,试验性的,从我的头顶
- 我不确定,您可能需要SORT\u NUMERIC而不是SORT\u ASC李>