380639999999 11.111.1.1 29.06.2018 12:40:44
380639999999 11.111.1.1 29.06.2018 12:40:57
380639999999 11.111.1.1 29.06.2018 12:40:58
380639999999 11.111.1.1 29.06.2018 12:55:31
380639999999 11.111.1.1 29.06.2018 12:55:43
380639999999 11.111.1.1 29.06.2018 12:56:25
380639999999 11.111.1.1 29.06.2018 13:01:24
380639999999 11.111.1.1 29.06.2018 13:02:13
380639999999 11.111.1.1 29.06.2018 13:02:40
380639999999 11.111.1.1 29.06.2018 13:02:42
380639999999 11.111.1.1 29.06.2018 13:03:07
380639999999 11.111.1.1 29.06.2018 13:03:10
380639999999 11.111.1.1 29.06.2018 13:03:12
380639999999 11.111.1.1 29.06.2018 13:03:14
380639999999 11.111.1.1 29.06.2018 13:03:37
380639999999 11.111.1.1 29.06.2018 13:03:45
380639999999 11.111.1.1 29.06.2018 13:03:53
380639999999 11.111.1.1 29.06.2018 13:03:59
380639999999 11.111.1.1 29.06.2018 13:08:09
380639999999 11.111.1.1 29.06.2018 13:08:12
380639999999 11.111.1.1 29.06.2018 13:10:02
380639999999 11.111.1.1 29.06.2018 13:10:04
380639999999 11.111.1.1 29.06.2018 13:10:44
380639999999 11.111.1.1 29.06.2018 13:22:03
380639999999 11.111.1.1 29.06.2018 13:22:17
Есть лог файл [номер телефона, ip, дата, время]
мне нужно вернуть лож в случае если:
было найдено более 2-х строк с разницей времени меньше 30 минут и с одинаковым ip
было найдено более 2-х строк с разницей времени меньше 30 минут и с одинаковым номером телефона
Как это лучше всего сделать чтоб не накручивать кучу циклов
$res=Response::fileget($log_file_path,array('n'=>$nn,'i'=>$ip));
// возвращает мне массив $array=array('i'=>array(),'n'=>array()); где i это строки в которых найден ip пользователя, n - строки в которых найден номер телефона полученный в query string
if($res){
$asdasd=json_encode($res);
if(count($asdasd['i'])>0){
for($i=0;$i<count($asdasd['i']);$i++){
$line_explode=explode(' ',$asdasd['i'][$i]);
}
}
if(count($asdasd['n'])>0){
for($i=0;$i<count($asdasd['n']);$i++){
$line_explode=explode(' ',$asdasd['n'][$i]);
}
}
}