Php 创建一个二维数组,该数组根据每个dateTime对象之间的时间间隔对dateTime对象集进行分组

Php 创建一个二维数组,该数组根据每个dateTime对象之间的时间间隔对dateTime对象集进行分组,php,arrays,datetime,multidimensional-array,dateinterval,Php,Arrays,Datetime,Multidimensional Array,Dateinterval,我必须创建一个程序,将给定表演者的所有节目都纳入“访问”中,这将被定义为连续日期的一组节目。下面的dateTime对象是一个更大列表的子集,为了本文的简洁,我拼接了这个列表 Array ( [0] => DateTime Object ( [date] => 2017-04-22 12:45:49.000000 [timezone_type] => 3

我必须创建一个程序,将给定表演者的所有节目都纳入“访问”中,这将被定义为连续日期的一组节目。下面的dateTime对象是一个更大列表的子集,为了本文的简洁,我拼接了这个列表

Array (
        [0] => DateTime Object
            (
                [date] => 2017-04-22 12:45:49.000000
                [timezone_type] => 3
                [timezone] => America/Denver
            )

        [1] => DateTime Object
            (
                [date] => 2017-04-21 12:45:49.000000
                [timezone_type] => 3
                [timezone] => America/Denver
            )
        [2] => DateTime Object
            (
                [date] => 2015-04-18 12:45:49.000000
                [timezone_type] => 3
                [timezone] => America/Denver
            )
       )
我有一个datetime对象列表,需要一个算法,根据每个日期之间的间隔大小将datetime对象放入二维数组。如果两个datetime对象之间的间隔大于1天,则在较大的数组中创建一个数组。如果间隔小于1天,则将datetime对象添加到当前设置指针的数组中。下面的算法从前面的三个dateTime对象创建了dateTime interval多维数组

    $incrementKey = 0;
foreach ($datesIntervalArray as $d) {
    if ($d->days > 1) {
        $incrementKey++;
    }
    $groupsOfVisits[$incrementKey][] = $d;



Array
(
    [0] => Array
        (
            [0] => DateInterval Object      (1/1/2017)
                (           
                    [days] => 1
                )

            [1] => DateInterval Object      (1/2/2017)
                (
                    [days] => 1   
                )
     [1] => Array
        (
            [0] => DateInterval Object      (2/1/2017)
                (           
                    [days] => 1
                )
 )

因此,我的问题是如何获取这些信息,并以第二个数组的格式(使用dateInterval对象)创建一个数组,但使用第一个数组(dateTime)中的信息?我还不知道如何从dateInterval转换回dateTime。有没有一种方法可以做到这一点而不必首先转换为dateInterval?我觉得我已经很接近了,但在这件事上花了很长时间。提前谢谢

我想前几天我给你的关于这个问题的答案已经进行了分组?我错过什么了吗?好吧,哇,真管用!我无法让您的代码正常工作,因为我以为您在使用foreach循环dateInterval对象,但实际上您在循环dateTime对象。谢谢你,你是救命恩人!啊,我明白了。这是有道理的。不客气!