我正在尝试制作PHP数组,这是我的例子。
在每个阵列中,第一行是唯一记录号“[767962]”
在那个阵列酒店房间里面第一排。
第二是酒店名称
第3和第4是第一个价格范围
第五是价格
Array
(
[767962] => Array /// --secial id for price record--//
(
[0] => 42923 /// --hotelroomid--//
[1] => Crystal Hotels Kemer Deluxe Resort /// --Hotel Name--//
[2] => 2013-04-01 /// --Start date--//
[3] => 2013-05-16 /// --End Date--//
[4] => 179 /// --Price --//
)
[767964] => Array
(
[0] => 42923
[1] => Crystal Hotels Kemer Deluxe Resort
[2] => 2013-05-17
[3] => 2013-05-26
[4] => 239
)
[767980] => Array
(
[0] => 42940
[1] => Rixos Deluxe Resort
[2] => 2013-03-02
[3] => 2013-05-26
[4] => 340
)
)
这是预期的输出。
我想知道该酒店房间之间的总价格2013-05-14 - 2013-05-21
1 , 42923 , Crystal Hotels Kemer Deluxe Resort , 2013-05-14 , 2013-05-21 , 1553
2 , 42940 , Rixos Deluxe Resort , 2013-05-14 , 2013-05-21 , 2380
例如,1553是2013-05-14 - 2013-05-21日期之间的总价。
2013-05-14 - 179
2013-05-15 - 179
2013-05-16 - 239
2013-05-17 - 239
2013-05-18 - 239
2013-05-19 - 239
2013-05-20 - 239
2013-05-21 - 239
总计是1553
答案 0 :(得分:0)
兄弟我在我的应用程序中做了这种工作我认为这对你很有帮助,但如果出现问题请告诉我,我会改变.......
例如,请参阅此链接以查看Demo;
$room_id = 42923;
$start_date = "2013-05-10 00:00:00";
$end_date = "2013-05-21 00:00:00";
查找上述两个日期之间的日期
$day = 86400; // Day in seconds
$format = 'Y-m-d'; // Output format (see PHP date funciton)
$sTime = strtotime($start_date); // Start as time
$eTime = strtotime($end_date); // End as time
$numDays = round(($eTime - $sTime) / $day) + 1;
$days = array();
for ($d = 0; $d < $numDays; $d++) {
$days[] = date($format, ($sTime + ($d * $day)));
}
现在,对于每个日期,您需要检查它落入哪个阵列
foreach($days as $key => $d)
{
foreach($data as $key1 => $dat)
{
if($dat[0] == $room_id) {
if($d >= $dat[2] && $d<= $dat[3]) {
$amount += $dat[4];
}
}
}
}
echo $amount;