在PHP中对日期作为键的多维数组进行排序

时间:2016-05-12 08:02:25

标签: php arrays sorting

我已经将日期转换为Unix时间戳数组,如下所示。

Array
(
    [ONE] => Array
        (
            [1460581200] => 
            [1460667600] => 
            [0] => 
        )

    [TWO] => Array
        (
            [1465506000] => 
            [1468184400] => 
            [0] => 
            [1470949200] => 
        )

)

我想在这个数组中安排日期,以便它们可以按降序排列,而不会影响主数组键。

我也希望[0](表示日期不存在)位于最前面。

1 个答案:

答案 0 :(得分:3)

试试这段代码:

<?php

$array = Array
(
    'ONE' => Array
        (
            '1460581200' => 'aaa',
            '1460667600' => 'bbb',
            '0' => 'ccc',
        ),
    'TWO' => Array
        (
            '1465506000' => 'ddd',
            '1468184400' => 'eee',
            '0' => 'fff',
            '1470949200' => 'ggg',
        )
);


function sortByKeys($array)
{
    $result = array();
    if(isset($array[0]))
    {
        $result[0] = $array[0];
        unset($array[0]);
    }

    krsort($array);

    return $result + $array;
}

$result = array_map('sortByKeys',$array);

print_r($result);

Working example