通过二维数组排序 - PHP

时间:2012-09-12 15:52:01

标签: php arrays sorting

我在php中有一个2D数组,它包含日期:

$cal[$year][$month] = $event; 

阵列的输出是:

Array ( [2012] => Array ( [6] => 10.92 [11] => 16.38 [8] => 1.3 [9] => 16.96 ) 

我想按年份和月份对数组进行排序。我该怎么做?

谢谢!

2 个答案:

答案 0 :(得分:1)

你应该查看array_multisort函数,你可以在这里找到信息:  http://php.net/manual/en/function.array-multisort.php

第二个例子就是你要找的东西

答案 1 :(得分:0)

根据您的以下数组:

$cal[$year][$month] = $event;

并考虑到$year$month都是数字(如果没有,只是投射它们)。

要按照ASCENDING顺序订购年份和月份,请执行以下操作:

ksort($cal); //sort years
foreach($cal as &$arr) {
   ksort($arr); //sort months
}

如果您希望以DESCENDING顺序,请执行:

krsort($cal); //sort years
foreach($cal as &$arr) {
   krsort($arr); //sort months
}

如果您想要混合排序,可以在两个示例中互换{{​​1}}和ksort(),例如年份ASCENDING和月份DESCENDING。