У меня есть массив с индексами в качестве отметок времени.Я пытался array_slice
получить все значения за определенный промежуток времени, но это не сработало.
$data = array_slice(["1549440811" => 1, "1549448226" => 2, "1551108588" => 3 ], 0, 1549460338);
Я должен получить $data
как ["1549440811" => 1, "1549448226" => 2]
, но это не сработает.
Чтобы получить правильные данные, я должен использовать
$data = array_slice(["1549440811" => 1, "1549448226" => 2, "1551108588" => 3 ], 0, 2);
Но проблема в том, что записи могут иметь случайные метки времени и нет.записей.Поэтому я не могу определить смещение, которое в этом случае равно 2.
Я знаю, что приведенный ниже код с некоторыми изменениями может работать для небольшого диапазона, но не для моих временных меток, поскольку $myrange
будет иметь многоdata.
$myrange = range(0,1549460338);
$output = array_intersect(["1549440811" => 1, "1549448226" => 2, "1551108588" => 3 ] , $myrange );
Я избегаю зацикливания массива, поскольку в массиве много данных.Также у меня есть много временных отметок, чтобы проверить.Этот код представляет собой упрощенную логику большего кода с записями из базы данных, проиндексированными с отметками времени.
Есть ли другой способ получить нужные данные?