Talk is cheap, show you the code
<?php
/**
* 时间段重合判断
* @param array $data 日期数组
* @param string $fieldStart 开始日期字段名
* @param string $fieldEnd 结束日期字段名
* @return bool true为重合,false为不重合
*/
function is_time_cross(array $data, string $fieldStart = 'start_day', string $fieldEnd = 'end_day')
{
// 按开始日期排序
array_multisort(
array_column($data, $fieldStart),
SORT_ASC,
$data
);