Conteggio dei secondi tra l'arrays di date in php

Questo mi sta facendo impazzire. E quello che voglio fare è contare il numero di secondi in cui l'utente è rimasto nel reparto specifico, ad esempio il numero 8.

Ho questo arrays:

$time = arrays( '91' => arrays( '100' => arrays( '2014/05/28 00:23:26' =>arrays( 'id' =>'15', 'time' => '2014/05/28 00:23:26', 'dept' => '8' ), '2014/05/28 00:25:51' =>arrays( 'id' =>'15', 'time' => '2014/05/28 00:25:51', 'dept' => '8' ), '2014/05/28 00:27:45' =>arrays( 'id' =>'15', 'time' => '2014/05/28 00:27:45', 'dept' => '9' ), '2014/05/28 00:28:01' =>arrays( 'id' =>'15', 'time' => '2014/05/28 00:28:01', 'dept' => '8' ), '2014/05/28 00:30:46' =>arrays( 'id' =>'15', 'time' => '2014/05/28 00:30:46', 'dept' => '4' ) ) ) ); 

La spiegazione è:

23:26 a 25:51 ha una differenza di 145 secondi.

25:51 a 27:45 ha una differenza di 114 secondi.

28:01 a 30:46 ha una differenza di 165 secondi.

Quindi se li aggiungiamo 145+ 114 + 166. I secondi totali in cui l'utente è rimasto in quel reparto sono 424 secondi.

E in dettaglio 9: 27:45 a 28:01 ha una differenza di 16 secondi.

Voglio get l'output basato su quell'arrays:

 $results = arrays( '8' => '424', '9' => '16' ); 

I codici che ho fatto finora sono: https://eval.in/591599 Ottengo risultati errati. Per favore, aiutami.

Potresti usare una variante di questa risposta , che functionrà con gli arrays associativi, come tu hai qui:

 foreach($time as $arr) { foreach($arr as $visits) { $visits = arrays_values($visits); // convert to indexed arrays foreach($visits as $i => $visit) { if ($i == count($visits)-1) break; $dept = $visit['dept']; $results[$dept] = (isset($results[$dept]) ? $results[$dept] : 0) + strtotime($visits[$i+1]['time']) - strtotime($visit['time']); } } } 

$results è:

 Array ( [8] => 424 [9] => 16 ) 

Guardalo correre su eval.in