如何按日期值对多维数组进行排序?

时间:2011-02-22 20:28:55

标签: php arrays multidimensional-array

我正在努力解决这个问题。根据日期按值对多维数组进行排序。这是数组的片段:

Array
(
    [0] => Array
        (
            [clicks] => 14
            [point] => 11 February 2011
        )

    [1] => Array
        (
            [clicks] => 1
            [point] => 14 February 2011
        )

    [2] => Array
        (
            [clicks] => 8
            [point] => 15 February 2011
        )

    [3] => Array
        (
            [clicks] => 0
            [point] => 08 February 2011
        )

我想按照正确的顺序按键排序日期。因此,在这种情况下,08 February 2011应该获得密钥0。我试图利用usort但是这并不顺利,因为我甚至无法使用codeigniter中的回调函数,这是我正在研究的另一个问题。

最有效的方法是什么?我的阵列可以增长到60个条目。

感谢大家的帮助。

2 个答案:

答案 0 :(得分:1)

此自定义排序应该有效:

function cmp($a, $b){
    $l = strtotime($a['point']);
    $r = strtotime($b['point']);
    if($l == $r){
        return 0;
    }
    return $l < $r ? -1 : 1;
}

usort($arr, "cmp");

答案 1 :(得分:0)

假设 $ data 是您的多维数组。

foreach ($data as $key => $row) {
    $point[$key]  = strtotime($row['point']);
}

// Sort the data with date ascending
array_multisort($point, SORT_ASC, $data);

参见 array_multisort 函数:http://php.net/manual/en/function.array-multisort.php(对于排序多维数组非常有用)

希望这有帮助。