从数组中的数据组合中检索结果

时间:2015-09-21 09:55:43

标签: php arrays

我希望有人能指出我正确的方向。

我需要使用这样的数组来确定是否可以使用以下组合:

客户搜索2个房间和4个客人。在示例数组中应该是可能的。但如果客户搜索2个房间和5个客人,则应该返回错误。

{{ctrl.list.length}}

2 个答案:

答案 0 :(得分:0)

正确的方向将是一个“贪婪的算法”。

您的通用算法将是:

1. Take `$rooms` amount items with max number of beds from your array (array_walk or do some presorting by key)
2. If total amount of `number_of_beds` greater or equals  return true, else - false :)

答案 1 :(得分:0)

您尝试匹配它:

1. Select the (unselected) room with most beds available
2. If the number of beds you have altogether is greater or equal the numer requested, you are done. 
3. If the number of rooms selected is smaller than the limit, Continue at 1. 
4. Else the request has failed.

这样就可以为用户的请求生成匹配,如果你无法满足需求,你可以告诉他。

另一种方法,如果您希望在同一页面上加载这样的许多请求,那么有用的方法就是解析可用的房间并计算您拥有的1,2,...双床房数量,然后您可以计算通过乘以床数和房间数量,您拥有的最多床位数。 这将胜过贪心算法,但需要做一些准备。