【问题标题】:Booking system: Find room combinations based on guest count - PHP预订系统:根据客人数量查找房间组合 - PHP
【发布时间】:2019-05-30 09:06:05
【问题描述】:

我正在准备一个预订系统并解决一个特定问题。我有以下数据结构(房间号/入住率/价格):

$room[222][1] = 80;

$room[223][1] = 100; //Room ID 222, occupancy 1 guest, price €100
$room[223][2] = 200; //Room ID 222, occupancy 2 guest, price €200
$room[223][3] = 300; //...

$room[224][1] = 110;
$room[224][2] = 220;
$room[224][3] = 330;
...

我需要为指定数量的客人找到最佳(最低价格)的房间组合。

例如: 4 位客人 是房间 $room[222][1] 和房间 $room[223][3] 的最佳组合。房间总价380欧元。

你能帮帮我吗?

【问题讨论】:

标签: php


【解决方案1】:

首先,我会让房间成为更具描述性的对象,如下所示: 其次,我不会像那样存储每个客户的价格,而是关注容量并从那里开始

  $room = array();
  $room[222] = array(
    'capactiy' => '3',
    'price' => array(
      1 => '100', //Use a string, likely you'll have .99 or whatever
      2 => '200',
      3 => '300',
    ),
    'booked' => false,
  );

所以您有 3 个客户进来: 循环通过可用房间,如果人数少于容量,则冷却,预订它,否则(例如容量为 2)然后从需要房间的客户数量中删除 2,然后再次循环并抓住下一个房间

如果你想变得更复杂,比如他们想紧挨着,选择 222 + 1 号房间,可以吗?如果没有,那么 223 + 1,它可用吗?是的?伟大的!预定吧。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-27
    • 2015-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多