用PHP排序开放时间

用PHP排序开放时间,php,arrays,sorting,Php,Arrays,Sorting,我有一个阵列,开放时间如下: array:7 [ "mon" => array [ "open" => null "close" => null ] "tue" => array [ "open" => null "close" => null ] "wed" => array [ "open" => "09:00" "close" => "20:00" ] "thu

我有一个阵列,开放时间如下:

array:7 [
  "mon" => array [
    "open" => null
    "close" => null
  ]
  "tue" => array [
    "open" => null
    "close" => null
  ]
  "wed" => array [
    "open" => "09:00"
    "close" => "20:00"
  ]
  "thu" => array [
    "open" => null
    "close" => null
  ]
  "fri" => array [
    "open" => "14:00"
    "close" => "17:00"
  ]
  "sat" => array [
    "open" => "12:00"
    "close" => "15:00"
  ]
  "sun" => array [
    "open" => "12:00"
    "close" => "15:00"
  ]
]
array [
  array [
        "mon" => array [
          "open" => null
          "close" => null
        ]
        "tue" => array [
            "open" => null
            "close" => null
        ]
    ]
    array [
        "wed" => array [
            "open" => "09:00"
            "close" => "20:00"
        ]
    ]
    array [
        "thu" => array [
            "open" => null
            "close" => null
        ]
    ]
    array [
        "fri" => array [
            "open" => "14:00"
            "close" => "17:00"
        ]
    ]
    array [
        "sat" => array [
            "open" => "12:00"
            "close" => "15:00"
        ]
        "sun" => array [
            "open" => "12:00"
            "close" => "15:00"
        ]
    ]
]
我想创建一个这样的结构:

array:7 [
  "mon" => array [
    "open" => null
    "close" => null
  ]
  "tue" => array [
    "open" => null
    "close" => null
  ]
  "wed" => array [
    "open" => "09:00"
    "close" => "20:00"
  ]
  "thu" => array [
    "open" => null
    "close" => null
  ]
  "fri" => array [
    "open" => "14:00"
    "close" => "17:00"
  ]
  "sat" => array [
    "open" => "12:00"
    "close" => "15:00"
  ]
  "sun" => array [
    "open" => "12:00"
    "close" => "15:00"
  ]
]
array [
  array [
        "mon" => array [
          "open" => null
          "close" => null
        ]
        "tue" => array [
            "open" => null
            "close" => null
        ]
    ]
    array [
        "wed" => array [
            "open" => "09:00"
            "close" => "20:00"
        ]
    ]
    array [
        "thu" => array [
            "open" => null
            "close" => null
        ]
    ]
    array [
        "fri" => array [
            "open" => "14:00"
            "close" => "17:00"
        ]
    ]
    array [
        "sat" => array [
            "open" => "12:00"
            "close" => "15:00"
        ]
        "sun" => array [
            "open" => "12:00"
            "close" => "15:00"
        ]
    ]
]
其中具有相同开放时间的日期被分组在一起,只要这些日期是连续的。否则一天就应该结束了

我一直在努力用PHP实现这一点,这就是我目前所得到的

$hours = []; 
$previousDay = null;

foreach ($days as $key => $day)
{   
    if ($day === $previousDay)
    {
        $hours[] = array($key => $day); 
    }
    else 
    {
        $hours[] = array($key => $day); 
    }

    $previousDay = $day; 
}  
我被困在如何将具有相同开放时间的日子组合在一个阵列中。

下面是如何进行的

$result = array();
$previous = null;
$idx = -1;
foreach ($days as $key => $day){
    if($day !== $previous){
        $idx++;
    }
    $result[$idx][$key] = $day;
    $previous = $day;
}