PHP更新约会插槽数组

时间:2013-12-12 16:08:28

标签: php arrays

我有一天的约会清单。相隔15分钟有10个可用的约会(我指的是每个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

 4  Available
 5  Available
 6  Available

 5  Available
 6  Available
 7  Available

 6  Available
 7  Available
 8  Available

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

 7  Unavailable
 8  Unavailable

由于约会无法在这些时间开始,因为在这些时间没有3个连续可用的时段。

我完全不知道我可以用来实现的逻辑/规则吗?我希望有一些我可以使用的摘要,只需要输入所需的插槽数。

1 个答案:

答案 0 :(得分:0)

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

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

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

  • 3/4/5
  • 4/5/6
  • 5/6/7
  • 6/7/8

注意:您可以使用1个单个函数,其中包含两个imbricated循环和$ i,$ k索引。为简化和可读性,我更喜欢两个函数!