我正在制作活动日历。一切都需要按时间顺序排序。
这是我正在排序的数组:
$years = array(
2018 => array(
01 => array(),
02 => array()
),
2017 => array(,
02 => array()
01 => array()
)
);
我最初有一个更大的数组用于填充此$years
。
使用ksort
,我已正确排序years
,即它们按时间顺序排列。但是,我无法对第三级进行排序(请参阅2017
,我的数组是02,01
,而它应该是01,02
)。最后一个级别或数组(例如2017 > 02
)已正确排序,这不是问题,因为它们按每个级别中的内容排序。
我已经尝试array_multisort
,ksort
,usort
而只是sort
,但没有人允许我对我的键进行排序,因为它们是数字。
答案 0 :(得分:3)
如何迭代子元素,并使用ksort()
对它们进行排序:
<?php
$years = array(
2018 => array(
01 => array(),
02 => array()
),
2017 => array(
02 => array(),
01 => array()
)
);
ksort($years);
foreach ($years as &$year) {
ksort($year);
}
var_dump($years);
答案 1 :(得分:2)
希望这个会有所帮助。这里我们使用ksort
来基于键对数组进行排序。
ksort($years);
$result=array_map(
function($array) {
ksort($array);
return $array;
},
$years);