PHP更新约会槽数组
我有一份一天的约会清单。有10个相隔15分钟的可用约会,我将每个15分钟的约会称为一个时段,列表可能如下所示: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个时段。因此,在上述示例
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