繁体   English   中英

PHP-按月和年对数组排序

[英]PHP - sort array by month and year

这是我的数组:

$ar = array( 
 'Jan-2016' => 1,
 'Feb-2016' => 2,
 'Mar-2016' => 3,  
 'Apr-2016' => 4,
 'May-2016' => 4,
 'Jun-2016' => 4,
 'Jul-2016' => 4,
 'Aug-2016' => 4,
 'Sep-2016' => 4,
 'Oct-2016' => 4,
 'Nov-2016' => 4,
 'Dec-2016' => 4,
 'Jan-2015' => 1,
 'Mar-2015' => 1);

我想按月份和年份对该数组进行排序。 我试过下面的代码:

ksort($ar);

但我无法获得预期的结果。

我需要如下数组的结果:

$ar = array(
 'Jan-2015' => 1,
 'Mar-2015' => 1,
 'Jan-2016' => 1,
 'Feb-2016' => 2,
 'Mar-2016' => 3,  
 'Apr-2016' => 4,
 'May-2016' => 4,
 'Jun-2016' => 4,
 'Jul-2016' => 4,
 'Aug-2016' => 4,
 'Sep-2016' => 4,
 'Oct-2016' => 4,
 'Nov-2016' => 4,
 'Dec-2016' => 4);

uksort是使用的正确函数:

uksort($ar, function($a1, $a2) {
        $time1 = strtotime($a1);
        $time2 = strtotime($a2);

        return $time1 - $time2;
    });

print_r($ar);

补充:排序顺序

$sortOrder = true;  // ASC
$sortOrder = false; // DESC

uksort($array, function($a, $b) use($sortOrder) {
    $timeA = strtotime($a);
    $timeB = strtotime($b);

    return $sortOrder ? ($timeA - $timeB) : ($timeB - $timeA);
});

暂无
暂无

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

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