У меня возникают проблемы с циклом через массив и сравнение каждого значения со следующим. В настоящее время моя функция работает, но она только сравнивает значения в наборах из двух. Например, если в значении «Start» Я имел:Разница между значениями в массиве php
1:05 утра 1:10 утра 1:30 утра 1:35 утра
Я хотел бы получить результаты: 5 минут (время между 1 : 05 и 1:10) и 5 минут (время между 1:30 и 1:35)
Но у меня отсутствует время между 1:10 и 1:30. Следующий цикл даст мне время между двумя следующими значениями, игнорируя время между 1:35 и следующим. Функция предназначена для silverstripe, которая использует datalists, но шаблон должен быть таким же, как любой массив? Был бы признателен за любую проницательность.
function timeCount()
{
$times = $this->Meetings()->sort('Start');
$lastTime = null;
foreach ($times as $time) {
if ($lastTime == null) {
$lastTime = $time;
continue;
}
$time = strtotime($time->Start);
$lastTime = strtotime($lastTime->Start);
//For debugging
$diff = round(abs($time - $lastTime)/60, 2) . " minute | ";
$lastTime = null;
var_dump($diff);
}
}
Как бы установить значение lastTime как значение времени, проведенного одной итерацией назад? –
использовать '$ lastTime = $ time;' в том месте, где '$ lastTime = null;' равно –
. Пока что получается правильное количество значений, он возвращает очень нечетные результаты. Выход затем становится 15-минутным | 22852195 мин. | 22852200 мин. | что и привело к тому, что сначала я использовал null. –