PHP查找到给定日期的壁橱日期,该日期不';t匹配数组中的任何日期

PHP查找到给定日期的壁橱日期,该日期不';t匹配数组中的任何日期,php,arrays,date,Php,Arrays,Date,如果用户选择的日期不可用,我想向他们显示最接近的可用性 不可用日期存储在如下数组中: Array([0]->2020-07-06, [1]->2020-07-07, [2]->2020-07-08, [3]->2020-07-11) 正如您所看到的,mekes更难理解的是,在[2]和[3]之间有两个可用日期 假设用户选择的2020-07-06比我想显示的2020-07-09 目前,我在数组上执行一个简单的asort(),并使用end()显示最后一天,但这显然不好,因为我

如果用户选择的日期不可用,我想向他们显示最接近的可用性

不可用日期存储在如下数组中:

Array([0]->2020-07-06, [1]->2020-07-07, [2]->2020-07-08, [3]->2020-07-11)
正如您所看到的,mekes更难理解的是,在[2]和[3]之间有两个可用日期

假设用户选择的
2020-07-06
比我想显示的
2020-07-09

目前,我在数组上执行一个简单的
asort()
,并使用
end()
显示最后一天,但这显然不好,因为我跳过了两天


如何显示最近的可用日期?

实现这一点的一种方法是检查请求的日期是否在数组中,如果是,则按天递增,直到找到不在数组中的日期:

$unavailable = array('2020-07-06', '2020-07-07', '2020-07-08', '2020-07-11');

$requested = new DateTime('2020-07-06');
while (in_array($requested->format('Y-m-d'), $unavailable)) {
    $requested->modify('+1 day');
}
echo $requested->format('Y-m-d');
输出:

2020-07-09

@LaciK别担心-我很高兴能帮上忙。