-1

我正在寻找对多维数组进行排序的最佳(最快)方法,如下所示:

array(
        2010 => array(
            1 => array(
                26 => 'some value',
                29 => 'some value',
                31 => 'some value'
            ),
            7 => array(
                13 => 'some value',
                25 => 'some value',
                4 => 'some value'
            )
        ),
        2011 => array(
            12 => array(
                5 => 'some value',
                3 => 'some value',
                19 => 'some value'
            ),
            2 => array(
                7 => 'some value',
                30 => 'some value',
                14 => 'some value'
            )
        )
    )

如您所见,我使用年、月和日作为键,我需要通过这些键对数组进行排序。我将非常感谢任何帮助。

谢谢

4

2 回答 2

3

你可以试试这个。使用递归函数可以使其更通用,但我认为这对你来说已经足够好了。

foreach ($years as &$months){
  foreach ($months as &$days){
    ksort($days);
  }
  ksort($months);
}
ksort($years);
于 2013-07-21T09:09:41.287 回答
2

您可以尝试“array_walk_recursive”递归访问多维数组中的项目以减少函数调用。一个例子:

function custom_sort(&$val, $key) {
    if (is_array($val)) {
        ksort($val);
    }
}

array_walk_recurisive($arrInput, 'custom_sort');
于 2013-07-21T09:25:26.550 回答