带有数字键的php排序多重引用数组

带有数字键的php排序多重引用数组,php,arrays,sorting,Php,Arrays,Sorting,我在做活动日历。一切都需要按时间顺序排序 这是我当前正在排序的数组: $years = array( 2018 => array( 01 => array(), 02 => array() ), 2017 => array(, 02 => array() 01 => array() ) ); 我最初有一个更大的数组用于填充这个$years 使用ksort,我已经正

我在做活动日历。一切都需要按时间顺序排序

这是我当前正在排序的数组:

$years = array(
    2018 => array(
        01 => array(),
        02 => array()
    ),
    2017 => array(,
        02 => array()
        01 => array()
    )
);
我最初有一个更大的数组用于填充这个$years

使用ksort,我已经正确地对年份进行了排序,也就是说,它们是按时间顺序排列的。但是,我无法对我的第三级进行排序。2017年,我的数组是02,01,而应该是01,02。最后一个级别或数组(如2017>02)排序正确,这不是问题,因为它们是按每个级别中的内容排序的


我已经尝试了array\u multisort、ksort、usort和simply sort,但没有一个允许我对键进行排序,因为它们是数字键。

如何迭代子元素,并使用ksort对它们进行排序:


遍历子元素,并使用ksort对它们进行排序,怎么样:


希望这一条会有帮助。这里我们使用的是基于键对数组进行排序


希望这一条会有帮助。这里我们使用的是基于键对数组进行排序


哦,好吧,我在这里看到了我的问题,在我的$year解决它之前使用。把答案标记为接受有点太快了。我可以问一下角色在这个场景中做了什么吗?它使用元素作为引用。这意味着,它将修改实际的$year数组,而不是简单地返回修改后的副本。读到这篇文章,我很高兴能帮上忙!哦,好吧,我在这里看到了我的问题,在我的$year解决它之前使用。把答案标记为接受有点太快了。我可以问一下角色在这个场景中做了什么吗?它使用元素作为引用。这意味着,它将修改实际的$year数组,而不是简单地返回修改后的副本。读到这篇文章,我很高兴能帮上忙!既然这确实解决了问题,我投了更高的票。但是,我已经使用了,因此我将把这个答案标记为解决方案。谢谢你的意见@哦,谢谢,很高兴来到这里既然这确实解决了问题,我投了更高的票。但是,我已经使用了,因此我将把这个答案标记为解决方案。谢谢你的意见@哦,谢谢,很高兴来到这里
<?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);
ksort($years);
$result=array_map(
  function($array)  {
       ksort($array);
       return $array;
  },
  $years);