So I have the following array ($lifeSpanArray
) and I'm looking to calculate the average interval between the two dates.
What I have so far, but I think I'm thinking slightly wrong with it:
<?php
foreach ($lifeSpanArray as $key) {
$newTimeAdd = new DateTime($key["timeAdded"]);
$newTimeRead = new DateTime($key["timeRead"]);
$interval = $newTimeAdd->diff($newTimeRead);
var_dump($interval);
}
?>
Which outputs:
Array
(
[0] => Array
(
[timeAdded] => 07/15/2014
[timeRead] => 07/15/2014
)
[1] => Array
(
[timeAdded] => 07/14/2014
[timeRead] => 07/14/2014
)
[2] => Array
(
[timeAdded] => 07/13/2014
[timeRead] => 07/15/2014
)
[3] => Array
(
[timeAdded] => 07/13/2014
[timeRead] => 07/13/2014
)
[4] => Array
(
[timeAdded] => 07/12/2014
[timeRead] => 07/12/2014
)
[5] => Array
(
[timeAdded] => 07/12/2014
[timeRead] => 07/12/2014
)
[6] => Array
(
[timeAdded] => 07/12/2014
[timeRead] => 07/12/2014
)
[7] => Array
(
[timeAdded] => 07/12/2014
[timeRead] => 07/12/2014
)
[8] => Array
(
[timeAdded] => 07/12/2014
[timeRead] => 07/12/2014
)
[9] => Array
(
[timeAdded] => 07/11/2014
[timeRead] => 07/11/2014
)
[10] => Array
(
[timeAdded] => 07/11/2014
[timeRead] => 07/11/2014
)
[11] => Array
(
[timeAdded] => 07/10/2014
[timeRead] => 07/11/2014
)
[12] => Array
(
[timeAdded] => 07/10/2014
[timeRead] => 07/10/2014
)
)
Try the following:
<?php
$intervals = array();
foreach ($lifeSpanArray as $key) {
$newTimeAdd = new DateTime($key["timeAdded"]);
$newTimeRead = new DateTime($key["timeRead"]);
$interval = $newTimeAdd->diff($newTimeRead);
$intervals[] = $interval->days;//get days
}
if(!empty($intervals))
{
$average = average($intervals);
}
function average($arr)
{
return array_sum($arr)/count($arr);
}
?>