php排序数组,日期为日期格式的关键字

时间:2016-01-05 14:21:32

标签: php arrays sorting date

我有一个数组如下: 第一个关键元素是格式为dd-mm-yyyy

的日期
Array
(
    [08-12-2015] => Array
        (
          ------------
        )
    [07-12-2015] => Array
        (
          ------------
        )
    [09-12-2015] => Array
        (
          ------------
        )
)

是否可以在第一个键值bij日期对此数组进行排序? 所以第一个元素是

Array
(
    [07-12-2015] => Array
        (
          ------------
        )
    [08-12-2015] => Array
        (
          ------------
        )
    [09-12-2015] => Array
        (
          ------------
        )
)

3 个答案:

答案 0 :(得分:2)

是的,我找到了解决方案:

function order_date($a1,$b1) {
    $format = 'd-m-Y';
    $a = strtotime(date_format(DateTime::createFromFormat($format, $a1), 'Y-m-d H:i:s'));
    $b = strtotime(date_format(DateTime::createFromFormat($format, $b1), 'Y-m-d H:i:s'));
    if ($a == $b)
    {
        return 0;
    }
    else if ($a > $b)
    {
        return 1;
    }
    else {
        return -1;
    }
}

uksort($array, "order_date");

的Tx。

答案 1 :(得分:0)

<?php
$date= array("08-12-2015"=>"lemon", "09-12-2015"=>"orange", "07-12-2015"=>"banana", "c"=>"apple");
ksort($date);
foreach ($date as $key => $val) {
    echo "$date = $val\n";
}
?>

这样的东西可能就是你要找的东西。只需根据您的需求进行定制。因此,如果您已经拥有这些日期的数组,则可以将其传递给ksort();

答案 2 :(得分:0)

将您的密钥转换为strtotime($key),然后应用ksort($dates),但它会消除重复密钥。