原始数组:
$arr = Array(
'11' => Array(
'1' => Array(
'sortid' => '6',
'driverid' => '1003',
'carsid' => '11',
'lineid' => '2',
'gettime' => '2018-01-19 10:00:00',
'comments' => ''
),
'2' => Array(
'sortid' => '2',
'driverid' => '1000',
'carsid' => '11',
'lineid' => '1',
'gettime' => '2018-01-19 10:03:31',
'comments' => ''
),
'4' => Array(
'sortid' => '9',
'driverid' => '1001',
'carsid' => '11',
'lineid' => '5',
'gettime' => '2018-01-19 12:48:54',
'comments' => ''
),
'6' => Array(
'sortid' => '4',
'driverid' => '1001',
'carsid' => '11',
'lineid' => '2',
'gettime' => '2018-01-19 14:47:50',
'comments' => ''
),
'7' => Array(
'sortid' => '5',
'driverid' => '1001',
'carsid' => '11',
'lineid' => '2',
'gettime' => '2018-01-19 14:48:07',
'comments' => ''
),
'8' => Array(
'sortid' => '7',
'driverid' => '1006',
'carsid' => '11',
'lineid' => '5',
'gettime' => '2018-01-19 14:48:29',
'comments' => ''
),
'10' => Array(
'sortid' => '10',
'driverid' => '1003',
'carsid' => '11',
'lineid' => '5',
'gettime' => '2018-01-19 14:49:05',
'comments' => ''
),
),
'10' => Array(
'3' => Array(
'sortid' => '1',
'driverid' => '1000',
'carsid' => '10',
'lineid' => '1',
'gettime' => '2018-01-19 11:47:15',
'comments' => ''
),
'5' => Array(
'sortid' => '3',
'driverid' => '1000',
'carsid' => '10',
'lineid' => '1',
'gettime' => '2018-01-19 14:47:40',
'comments' => ''
),
'12' => Array(
'sortid' => '12',
'driverid' => '1001',
'carsid' => '10',
'lineid' => '1',
'gettime' => '2018-01-19 14:49:17',
'comments' => ''
),
),
'12' => Array(
'9' => Array(
'sortid' => '8',
'driverid' => '1001',
'carsid' => '12',
'lineid' => '5',
'gettime' => '2018-01-19 14:48:46',
'comments' => ''
),
'11' => Array(
'sortid' => '11',
'driverid' => '1006',
'carsid' => '12',
'lineid' => '1',
'gettime' => '2018-01-19 14:49:12',
'comments' => ''
),
),
'13' => Array(
'13' => Array(
'sortid' => '13',
'driverid' => '1001',
'carsid' => '12',
'lineid' => '5',
'gettime' => '2018-01-19 12:48:46',
'comments' => ''
),
'14' => Array(
'sortid' => '14',
'driverid' => '1006',
'carsid' => '12',
'lineid' => '1',
'gettime' => '2018-01-19 14:49:12',
'comments' => ''
),
),
);
三维数组的要求是:三位数组的第三位维的相邻的gettime键值的差如果大于600秒,就返回其sortid键的值。处理后的数组如下:
$arrs = array(
'11' => array(
array(6,2),
array(4,5,7,10),
),
'10' => array(
array(3,12),
),
'12' => array(
array(8,11)
),
);
多谢各位大牛!
4 回答
![?](http://img1.sycdn.imooc.com/533e4c1500010baf02200220-100-100.jpg)
喵喔喔
TA贡献1735条经验 获得超5个赞
[1]保留key
$aDelArr = [];
foreach($arr as $key => $aFValue)
{
$i = 0;
$iPreTime = 0;
foreach($aFValue as $iNode => $aV)
{
$iTime = strtotime($aV['gettime']);
$iSubTime = $iTime - $iPreTime;
if($iSubTime > 600 && !empty($aDelArr[$key][$i]))
{
$i++;
}
$aDelArr[$key][$i][$iNode] = $aV['sortid'];
$iPreTime = $iTime;
}
}
[2]修改原数组
foreach($arr as $key => &$aValue)
{
$aTemp = [];
$iPreTime = 0;
foreach($aValue as $aV)
{
$iTime = strtotime($aV['gettime']);
$iSubTime = $iTime - $iPreTime;
if($iSubTime > 600)
{
$aTemp[] = [];
}
$aTemp[count($aTemp) - 1][] = $aV['sortid'];
$iPreTime = $iTime;
}
$aValue = $aTemp;
}
- 4 回答
- 0 关注
- 536 浏览
添加回答
举报
0/150
提交
取消