猿问

求助 怎么用PHP处理这样的数组

把时间间隔大于300秒的数组拆开,处理成三位数组。
原始数组:
$arr=Array(
'100'=>Array(
'46'=>'2018-01-1814:30:30',
'36'=>'2018-01-1814:31:11',
'41'=>'2018-01-1814:32:40',
'43'=>'2018-01-1815:48:22',
'50'=>'2018-01-1816:48:00',
'51'=>'2018-01-1816:50:30',
'52'=>'2018-01-1816:51:22',
),
'101'=>Array(
'35'=>'2018-01-1814:46:03',
'38'=>'2018-01-1814:46:51',
'39'=>'2018-01-1814:47:04',
'40'=>'2018-01-1814:47:15',
'44'=>'2018-01-1815:48:39',
'53'=>'2018-01-1815:58:39',
'54'=>'2018-01-1816:01:20',
),
'102'=>Array(
'37'=>'2018-01-1814:46:42',
'42'=>'2018-01-1815:48:03',
'45'=>'2018-01-1816:49:19',
'55'=>'2018-01-1817:49:11',
'56'=>'2018-01-1819:50:19',
'57'=>'2018-01-1819:52:10',
)
);
处理后的数组
$arr=Array(
'100'=>Array(
0=>Array(
'46'=>'2018-01-1814:30:30',
'36'=>'2018-01-1814:31:11',
'41'=>'2018-01-1814:32:40',
),
1=>Array(
'43'=>'2018-01-1815:48:22',
),
2=>Array(
'50'=>'2018-01-1816:48:00',
'51'=>'2018-01-1816:50:30',
'52'=>'2018-01-1816:51:22',
),
),
'101'=>Array(
0=>Array(
'35'=>'2018-01-1814:46:03',
'38'=>'2018-01-1814:46:51',
'39'=>'2018-01-1814:47:04',
'40'=>'2018-01-1814:47:15',
),
1=>Array(
'44'=>'2018-01-1815:48:39',
'53'=>'2018-01-1815:58:39',
),
2=>Array(
'54'=>'2018-01-1816:01:20',
)
),
'102'=>Array(
0=>Array(
'37'=>'2018-01-1814:46:42',
),
1=>Array(
'42'=>'2018-01-1815:48:03',
),
2=>Array(
'45'=>'2018-01-1816:49:19',
),
3=>Array(
'55'=>'2018-01-1817:49:11',
),
4=>Array(
'56'=>'2018-01-1819:50:19',
'57'=>'2018-01-1819:52:10',
)
)
);
求助各位大牛,多谢!
慕尼黑8549860
浏览 274回答 2
2回答

慕盖茨4494581

foreach($arras&$item){$tmp=[];$current=0;foreach($itemas$key=>$value){if(strtotime($value)-$current>300){$tmp[]=[];}$tmp[count($tmp)-1][$key]=$value;$current=strtotime($value);}$item=$tmp;}var_dump($arr);

蝴蝶不菲

$aArrDel=array();foreach($arras$key=>$aValue){$i=0;$iBeforeTime=0;foreach($aValueas$iNode=>$v){$iTime=strtotime($v);$iTimeSub=$iTime-$iBeforeTime;if($iTimeSub>300&&!empty($aArrDel[$key])){$i++;}$aArrDel[$key][$i][$iNode]=$v;$iBeforeTime=$iTime;}}
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答