Он запускается через массив, проверяя повторения, сохраняя только уникальный session_id (и это работает без каких-либо проблем), проблема в том, что каждый раз, когда он находит повторяющийся уникальный идентификатор, он должен заменять вторую дату на $ result [$ i-1] [3] = $ val ['дата']; , что позволяет нам контролировать время между первым и последним идентификатором сеанса (создавая время сеанса).
Однако, когда он находит первое повторение, он сохраняет и не сохраняет никаких других (мы можем иметь, например, 10 повторов.
Каждый код
foreach($parsed['results'] as $val){
if ($i>0) {
$y = $i - 1;
}
if($i==0){
$result[] = [
$val['source'],
$val['session_id'],
$val['date'],
$val['date'],
];
$i++;
}else if ($val['session_id']!=0){
$y=0;
for ($j=1;$j<=count($val);$j++)
{
if($val['session_id']==$result[$i-1][1] )
{
$result[$i-1][3] = $val['date'];
break;
}
else{
$result[] = [
$val['source'],
$val['session_id'],
$val['date'],
$val['date'],
];
}
$i++;
}
}
else{}
}
Результат
Array ( [0] => Array ( [0] => Product#0 [1] => ripkd6im70d7qn [2] => 2020-07-06T23:58:22+00:00 [3] => 2020-07-06T23:58:22+00:00 ) [1] => Array ( [0] => Product#1 [1] => 89m1s1qgleelo [2] => 2020-07-06T23:58:20+00:00 [3] => 2020-07-06T23:58:19+00:00 ) [2] => Array ( [0] => Product#2 [1] => 5rpf097c3n7q4[2] => 2020-07-06T23:55:49+00:00 [3] => 2020-07-06T23:55:47+00:00 ) [3] => Array ( [0] => Product#3 [1] => 3p04fkejncd [2] => 2020-07-06T23:46:13+00:00 [3] => 2020-07-06T23:46:11+00:00 ) [4] => Array ( [0] => Product#4 [1] => 7qa1p9pmti1mb2r [2] => 2020-07-06T23:45:00+00:00 [3] => 2020-07-06T23:44:59+00:00 )