2016-12-09 5 views
1

時間はとしてフォーマットdatetimeオブジェクトです。PHP和多次元配列の日付間隔は、従業員のクロック用

Array 
(
    [0] => Array 
     (
      [employee] => 2 
      [time] => 00:0:17 
     ) 

    [1] => Array 
     (
      [employee] => 1 
      [time] => 00:0:4 
     ) 

    [2] => Array 
     (
      [employee] => 2 
      [time] => 02:0:0 
     ) 

    [3] => Array 
     (
      [employee] => 3 
      [time] => 02:0:0 
     ) 

    [4] => Array 
     (
      [employee] => 3 
      [time] => 01:0:0 
     ) 

) 

そして、私は何かのように、グループ化し、合計必要があります:

私が持っている

Array 
(
    [0] => Array 
     (
      [employee] => 2 
      [totalTime] => 02:0:17 
     ) 

    [1] => Array 
     (
      [employee] => 1 
      [totalTime] => 00:0:4 
     ) 

    [2] => Array 
     (
      [employee] => 3 
      [totalTime] => 03:0:0 
     ) 

) 

任意の考えを?たぶんUNIXに時間を変換し、そこから操作する?あなたが希望する出力のようなよう何かをしたいので

答えて

1

、おそらくこれが行います。

foreach($array as $value){ 
    if(!isset($data[$value['employee']])){ 
    $data[$value['employee']] = 0; 
    } 

    $parsed = date_parse($value['time']); 
    $data[$value['employee']] += $parsed['hour'] * 3600 + $parsed['minute'] * 60 + $parsed['second']; 
} 

print_r($data); 

を代わりに多次元配列を作成する、$dataemployeeのキーと合計時間の価値を持っていますすぐに。

明らかに、秒を非常に簡単にフォーマットに変換できます。

+0

ありがとうございます!それはすごくうまくいった –

+0

データベースを操作する別の方法。 –