鍍金池/ 問(wèn)答/PHP/ 求助 怎么用PHP處理這樣的數(shù)組

求助 怎么用PHP處理這樣的數(shù)組

把時(shí)間間隔大于300秒的數(shù)組拆開,處理成三位數(shù)組。

原始數(shù)組:

$arr = Array(
        '100' => Array(
            '46' => '2018-01-18 14:30:30',
            '36' => '2018-01-18 14:31:11',
            '41' => '2018-01-18 14:32:40',
            '43' => '2018-01-18 15:48:22',
            '50' => '2018-01-18 16:48:00',
            '51' => '2018-01-18 16:50:30',
            '52' => '2018-01-18 16:51:22',
        ),
        '101' => Array(
            '35' => '2018-01-18 14:46:03',
            '38' => '2018-01-18 14:46:51',
            '39' => '2018-01-18 14:47:04',
            '40' => '2018-01-18 14:47:15',
            '44' => '2018-01-18 15:48:39',
            '53' => '2018-01-18 15:58:39',
            '54' => '2018-01-18 16:01:20',
        ),
        '102' => Array(
            '37' => '2018-01-18 14:46:42',
            '42' => '2018-01-18 15:48:03',
            '45' => '2018-01-18 16:49:19',
            '55' => '2018-01-18 17:49:11',
            '56' => '2018-01-18 19:50:19',
            '57' => '2018-01-18 19:52:10',
        )
    );

處理后的數(shù)組

    $arr = Array(
        '100' => Array(
            0 => Array(
                '46' => '2018-01-18 14:30:30',
                '36' => '2018-01-18 14:31:11',
                '41' => '2018-01-18 14:32:40',
            ),
            1 => Array(
                '43' => '2018-01-18 15:48:22',
            ),
            2 => Array(
                '50' => '2018-01-18 16:48:00',
                '51' => '2018-01-18 16:50:30',
                '52' => '2018-01-18 16:51:22',
            ),
        ),
        '101' => Array(
            0 => Array(
                '35' => '2018-01-18 14:46:03',
                '38' => '2018-01-18 14:46:51',
                '39' => '2018-01-18 14:47:04',
                '40' => '2018-01-18 14:47:15',
            ),
            1 => Array(
                '44' => '2018-01-18 15:48:39',
                '53' => '2018-01-18 15:58:39',
            ),
            2 => Array(
                '54' => '2018-01-18 16:01:20',
            )
        ),
        '102' => Array(
            0 => Array(
                '37' => '2018-01-18 14:46:42',
            ),
            1 => Array(
                '42' => '2018-01-18 15:48:03',
            ),
            2 => Array(
                '45' => '2018-01-18 16:49:19',
            ),
            3 => Array(
                '55' => '2018-01-18 17:49:11',
            ),
            4 => Array(
                '56' => '2018-01-18 19:50:19',
                '57' => '2018-01-18 19:52:10',
            )
        )
    );

求助各位大牛,多謝!

回答
編輯回答
孤巷
foreach ($arr as &$item) {
    $tmp = [];
    $current = 0;
    foreach ($item as $key => $value) {
        if (strtotime($value) - $current > 300) {
            $tmp[] = [];
        }
        $tmp[count($tmp) - 1][$key] = $value;
        $current = strtotime($value);
    }
    $item = $tmp;
}
var_dump($arr);
2018年4月20日 15:30
編輯回答
背叛者
$aArrDel = array();

foreach($arr as $key => $aValue)
{
    $i = 0;
    $iBeforeTime = 0;
    foreach($aValue as $iNode => $v)
    {
        $iTime = strtotime($v);
        $iTimeSub = $iTime - $iBeforeTime;
        if($iTimeSub > 300 && !empty($aArrDel[$key]))
        {
            $i++;
        }
        $aArrDel[$key][$i][$iNode] = $v;
        $iBeforeTime = $iTime;
    }
}
2017年12月21日 19:52