我有一个网站,用户可以在其中搜索世界各地的酒店房间。
我向某个服务器发出请求并检索 xml 响应。
我解析每个 xml 并打印酒店、图像和房间组合(因为如果有人搜索单人间、双人间和三人间,我会有更多组合)。
好吧,问题是我可以检索很多很多酒店,每家酒店可以有更多类型的房间,比如每家酒店 5 个(5 种房间我可以有 7 / 8 组合,用 php 计算)。
我把每家酒店和房间放在一个数组中,传递给我的视图,这是我的数组构造函数(我有很多信息):
$hotel = array();
foreach ($xml->DATA as $entry){
foreach ($entry->HOTEL_DATA as $entry2){
$id = (string)$entry2->attributes()->HOTEL_CODE;
$hotel_array2 = array();
$hotel_array2['id'] = $id;
$hotel_array2['currency'] = (string)$entry2->attributes()->CURRENCY_CODE;
$i=0;
foreach($entry2->ROOM_DATA as $room){
$room_array = array();
$room_array['id'] = (string)$room->attributes()->CCHARGES_CODE;
$room_array['code'] = (string)$room->attributes()->ROOM_CODE;
$room_array['name'] = utf8_decode($room->ROOM_NAME);
$hotel_array2['rooms'][$i] = array($room_array);
$i++;
}
if (!isset($hotel_array[$hotel_array2['id']])) {
$hotel_array[$hotel_array2['id']] = $hotel_array2;
} else {
$hotel_array[$hotel_array2['id']]['rooms'] = array_merge($hotel_array[$hotel_array2['id']]['rooms'], $hotel_array2['rooms']);
}
}
}
}
return ($hotel_array);
要打印此数组,我必须在其中创建一些 foreach(大约 3、4)并计算与用户搜索相对应的每个房间组合。
oriblem 是我需要 30 秒来检索数据并打印它(很多时间)但问题是我必须插入许多其他提供程序(服务器以获取酒店然后更多的酒店)并且如果用户必须通过价格或按位置,我认为订购这个具有多个级别的数组非常慢,我每次都必须通过邮寄这个数组。,
我已经想到了一个解决方案:
将所有数据存储到某个表中的数据库中:酒店、房间和仅查看某些酒店(最多 20 个),如果我必须订购它,我会在该表中搜索另一个查询(每个表都是一个搜索或具有与此搜索相对应的外部键)。
将数据搜索存储在其中并在 print 或 ios 之后存储数据搜索的好方法是更好地拥有一个非常大的数组,其中包含许多 foreach 并且每次都在 Post 中传递?
还有其他解决方案吗?
是关于架构以及如何存储(如果我必须存储数据)、如何打印、如何管理大量数据的问题,我对这些数据量没有经验。