繁体   English   中英

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

[英]How to sort a multi-dimensional array by values which are dates?

我为此感到挣扎。 根据日期对多维数组进行排序。 这是数组的一个片段:

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个条目。

谢谢大家的帮助。

此自定义排序应起作用:

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");

假设$ 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 (对多维数组排序非常有用)

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM