每个阵列只合并一个元素,不重复并考虑所有可能的组合

时间:2016-10-24 19:18:25

标签: php

我遇到了解决这个问题的严重困难。提前感谢您的帮助。

酒店房间可用性的查询请求如下:

enter image description here

其中'groups_rooms'是一个包含每个键的variuos房间的数组集合,您需要为每个group_room只占一个房间以完成所有必需的可用性。

例如,在这种情况下,预期结果如下:

$result = array (
   array(room1, room4, room5),
   array(room1, room4, room6),
   array(room2, room4, room5),
   array(room2, room4, room6),
   array(room3, room4, room5),
   array(room3, room4, room6),
   //...
);

为了解释这个问题,我展示了请求可用性响应的确切外观:

查询:5名成人和3名儿童。

enter image description here

“paxes”,它是以连字符分隔的字符串格式的成人和儿童的组合:

$adults .'-'. $children;

在上面的结果中,您可以看到以下内容:

  • '1-2':成人和2名儿童的房间
  • '2-0':2名成人和0名儿童的房间
  • '2-1':2名成人和1名儿童的房间

如果您每人只需要一个房间,您将获得5名成人和3名儿童所需的全部房源。

预期结果:

$result = array (
   array(room1, room4, room5), // option one to 5 adults and 3 children
   array(room1, room4, room6), // option two to 5 adults and 3 children
   array(room2, room4, room5), // option three to 5 adults and 3 children
   array(room2, room4, room6), // etc.
   array(room3, room4, room5),
   array(room3, room4, room6),
   //...
);

坦克你!

修改

以下链接包含使用暴力破解此问题的解决方案,但我正在寻找更优雅的解决方案。

http://sandbox.onlinephpfunctions.com/code/be38e9e97cf4ad3937eb0c9af807f45f0f5de66c

感谢。

0 个答案:

没有答案