PHP更新约会槽数组

PHP更新约会槽数组,php,arrays,Php,Arrays,我有一份一天的约会清单。有10个相隔15分钟的可用约会,我将每个15分钟的约会称为一个时段,列表可能如下所示: 1 Unavailable 2 Unavailable 3 Available 4 Available 5 Available 6 Available 7 Available 8 Available 9 Unavailable 10 Unavailable 某些类型的预约需要最少的时间。例如,如果约会类型较长,则需要连续3个时段。因此,在上述示例

我有一份一天的约会清单。有10个相隔15分钟的可用约会,我将每个15分钟的约会称为一个时段,列表可能如下所示:

 1  Unavailable
 2  Unavailable
 3  Available
 4  Available
 5  Available
 6  Available
 7  Available
 8  Available
 9  Unavailable
 10 Unavailable
某些类型的预约需要最少的时间。例如,如果约会类型较长,则需要连续3个时段。因此,在上述示例中,可能的组合可能是

 3  Available
 4  Available
 5  Available

然后我需要更新列表以使7和8不可用:

 7  Unavailable
 8  Unavailable
因为在这些时间没有连续的3个可用时段开始,所以约会无法在这些时间开始


我完全不明白我可以在这里实现什么逻辑/规则?我希望有一些抽象的东西可以使用,只需输入所需的插槽数。

这是一个函数中函数的简单教科书练习

第一个函数需要扫描第一个可用插槽,然后将上下文传递给第二个函数,该函数将从当前位置向前看,并确保下一个1/2/3/4/etc插槽可用

如果可用,第二个函数返回true,第一个函数只考虑它需要1/2/3/4/5/etc插槽,因此一个可能的选择是使用:

3/4/5 4/5/6 5/6/7 6/7/8
注意:您可以使用带有两个叠瓦循环和$i,$k索引的单个函数。为了简化和可读性,我更喜欢两个函数

你的解释有点混乱,我在“保持3/4/5,但交换7/8”时失去了你。您似乎在问如何使用代码智能地移动约会,以最大限度地增加一天的约会次数。是这样吗?对不起,我刚刚编辑了这个问题,希望能让它更清楚。我真的只关心确保开始时间可用,只要在这些时间有所需数量的连续插槽开始,否则我需要将任何可用更改为不可用OK,那么为什么您要避免使用1-2和9-10?如果您没有预订,那么3个时段的预约可以住在1-3、2-4、3-6、4-7、5-8、6-9。在你申请任何预约之前,你需要准备好你的逻辑。列表的功能是什么,如何填充等等。正如Mathieu所说,这是一个简单的任务,你只需要向前看,找到正确数量的“可用”。
 5  Available
 6  Available
 7  Available
 6  Available
 7  Available
 8  Available
 7  Unavailable
 8  Unavailable