3

我有这个数组

$date = array{"2013-09-17 00:21:00",
              "2013-09-23 00:12:00",
              "2013-09-23 00:41:00",
              "2013-09-20 00:13:00",
              "2013-09-19 00:34:00",
              "2013-09-17 00:38:00"}

我正在尝试对具有相同日期的数组中的时间求和。

这是我的预期输出:

 $date = array{"2013-09-17 00:59:00",
               "2013-09-23 00:53:00", 
               "2013-09-20 00:13:00",
               "2013-09-19 00:34:00"}

现在这是我迄今为止尝试过的

foreach($date as $key => $value)
        {
            $lf_date[] = date("Y-m-d",strtotime($value));
            $lf_time[] = date("H:i:s",strtotime($value));

            if(isset($lf_date[$key]))
            {
                 $output[] += $lf_time[$key]; 
            }
            else
            {
                 $output[] = $lf_time[$key]; 
            }

        }

这给了我一个 0 输出 T_T.. 我已经尝试在谷歌上搜索它说我必须使用issetarray_key_exists但我无法让它工作。:(。感谢任何可以帮助我的人。

4

1 回答 1

1

利用:

<?php
$date = array("2013-09-17 00:21:00",
              "2013-09-23 00:12:00",
              "2013-09-23 00:41:00",
              "2013-09-20 00:13:00",
              "2013-09-19 00:34:00",
              "2013-09-17 00:38:00");

$array = array();             
foreach($date as $key => $value)
{
    $lf_date = date("Y-m-d",strtotime($value));
    $lf_time = date("H:i:s",strtotime($value));

    $midnight = strtotime("0:00");

    if(!isset($array[$lf_date])) 
           $array[$lf_date] = 0;//check is array index exists

    $array[$lf_date] += strtotime($lf_time) - $midnight;
}

foreach($array as $key => $value)
{
    $midnight = strtotime("0:00");
    $array[$key] = $key." ".date("G:i:s", $midnight + $value);
}

$result = array_values($array);

print_r($result);

?>

输出:

Array
(
    [0] => 2013-09-17 0:59:00
    [1] => 2013-09-23 0:53:00
    [2] => 2013-09-20 0:13:00
    [3] => 2013-09-19 0:34:00
)
于 2013-10-07T10:03:56.690 回答