如何在一组日期中查找一年中的最后日期(PHP)

时间:2014-01-23 15:30:25

标签: php arrays

作为MySQL的输出,我得到了一个这样的数组:

Array
(
    [0] => Array
        (
            [name] => Date
            [data] => Array
                (
                    [0] => 2009-07-01
                    [1] => 2009-08-01
                    [2] => 2009-09-01
                    [3] => 2010-10-01
                    [4] => 2010-11-01
                    [5] => 2010-12-01
                    [6] => 2011-01-01
                    [7] => 2011-02-01
                    [8] => 2012-03-01
                    [9] => 2012-04-01
                    [10] => 2012-05-01
                )
        )

    [1] => Array
        (
            [name] => Counts
            [data] => Array
                (
                    [0] => 13
                    [1] => 13
                    [2] => 15
                    [3] => 16
                    [4] => 17
                    [5] => 18
                    [6] => 19
                    [7] => 11
                    [8] => 14
                    [9] => 14
                    [10] => 15
                )
        )
)

为了进一步发展,我需要找到每年最高的日期。如何查找每年的最后日期并从'counts'数组中获取它的值。对于上面的代码,我想实现这样的目标:

Array
(
    [0] => Array
        (
            [name] => Date
            [data] => Array
                (
                    [1] => 2009-09-01
                    [2] => 2010-12-01
                    [3] => 2011-02-01
                    [4] => 2012-05-01
                )
        )

    [1] => Array
        (
            [name] => Counts
            [data] => Array
                (
                    [1] => 15
                    [2] => 18
                    [3] => 11
                    [4] => 15
                )
           )

2 个答案:

答案 0 :(得分:0)

php具有最大功能。阅读它here它非常容易满足您的需求;

答案 1 :(得分:0)

$arr = array('... your array ...');
$date = array();
$count = array();
foreach ($arr[0]['data'] as $key => $value) {
    $year = substr($value, 0, 4);
    if (!$date[$year] || $date[$year] < $value) {
        $date[$year] = $value;
        $count[$year] = $arr[1]['data'][$key];
    }
}
$date =  array_values($date); //reset the keys
$count =  array_values($count); //reset the keys
$res = array(
    array(
        'name'=>'Date',
        'data'=>$date,
    ),
    array(
        'name'=>'Count',
        'data'=>$count,
    )
);
print_r($res);