У меня есть массив, который использует временные метки UNIX для ключей массива. Массив, как правило, хранит данные в течение от 15 минут до часа времени, однако есть только записи за секунды, у которых есть данные.Найдите самый длинный диапазон последовательных ключей Array
Большая часть данных будет разбросана, иногда будут промежутки данных за последовательные секунды. То, что я хотел бы сделать, - получить первую и последнюю секунду самого длинного последовательного промежутка секунд в массиве.
Если у меня есть этот массив
Array
(
[1276033307] => 119.0
[1276033331] => 281.8
[1276033425] => 28.2
[1276033431] => 88.2
[1276033432] => 196.2
[1276034207] => 205.5
[1276034226] => 73.8
[1276034227] => 75.8
[1276034228] => 77.8
[1276034230] => 79.8
)
я либо нужны ключи 1276034226 и 1276034228, или следующий массив возвращаемые.
Array
(
[1276034226] => 73.8
[1276034227] => 75.8
[1276034228] => 77.8
)
если изменить ваш ответ немного и использовать массив удерживайте значения внутри isset (что-то вроде while (isset ($ array [$ k + $ index])) {$ tempArr [$ counter] [] = $ array [$ k + $ index];}), а затем проверьте длины sub-массивы, я думаю, вы можете сделать намного больше. Дайте мне знать, если это кажется загадочным. Чувствуя себя слишком ленивым .. – pinaki
Конечно, вам нужно было бы определить и использовать счетчик $ .... – pinaki
спасибо pinaki;) отредактирован соответственно, я думаю ... не уверен, что я прав: -p если нет, по крайней мере, вы сделали я смотрю на это с другой точки зрения. :-) – acm