2016-11-12 2 views
0

Я смотрел в Google в течение нескольких часов, но не нашел никакой информации по моему вопросу.php array time filtering

$elements[] = array('time1' => $time1, 'time2' => $time2, 'string1' => $string1, 'string2' => $string2, 'string3' => $string3, 'string4' => $string4); 

У меня есть элементы массива $, где я получил написанные строки с кодом, который вы видите из таблицы HTML со страницы в Интернете. Но я не могу найти способ, как сделать фильтрацию по времени.

Например, я хочу использовать временной интервал 3 часа и получить из элементов массива в течение следующих 3 часов.

Я пытался использовать

while($tmnw = date("H:i", strtotime('+3 hours')); $tmnw < $elements['time2']) { 

echo information from array; 

} 

но он бросает ошибку:

[12-Nov-2016 20:35:03] PHP Notice: Trying to get property of non-object in filtering.php on line 15 
[12-Nov-2016 20:35:03] PHP Notice: Undefined index: time2 in filtering.php on line 41 

время сохраняет в массиве с simple_dom:

$time1= date("H:i", strtotime($row->find('td',0)->plaintext)); 
$time2= date("H:i", strtotime($row->find('td',1)->plaintext)); 

ответ

0

Это происходит потому, что ваш $elements двумерно массив и time2 находится во втором измерении. Также ваш цикл - бесконечный цикл.

Вам нужно будет что-то вроде

$tmnw = date("H:i", strtotime('+3 hours')); 
foreach ($elements as $element) { 
    if ($tmnw < $element['time2']) { 
     echo 'info'; 
    } 
} 
+0

Спасибо! Это сработало отлично :) –