Let's say you were given the arrival date 12/28/10 and a departure date of 1/5/11, in the form of an array ( which is always consistent and can be relied upon ) such as:
$data = array(
0 => array(
'Date' => '12/28/10',
'Price' => 100
),
1 => array(
'Date' => '12/29/10',
'Price' => 100
),
2 => array(
'Date' => '12/30/10',
'Price' => 100
),
3 => array(
'Date' => '12/31/10',
'Price' => 100
),
4 => array(
'Date' => '1/1/11',
'Price' => 100
),
5 => array(
'Date' => '1/2/11',
'Price' => 100
),
6 => array(
'Date' => '1/3/11',
'Price' => 100
),
7 => array(
'Date' => '1/4/11',
'Price' => 100
)
);
How could I generate a table summarising the two weeks of rates up, with the first table cell starting on Sunday and the last table cell on Saturday?
The output would need to be something like:
<table>
<tr>
<thead>
<tr>
<th>Sun</th>
<th>Mon</th>
<th>Tue</th>
<th>Wed</th>
<th>Thu</th>
<th>Fri</th>
<th>Sat</th>
</tr>
</thead>
<tbody>
<tr>
<td>12/26</td>
<td>12/27</td>
<td>12/28</td>
<td>12/29</td>
<td>12/30</td>
<td>12/31</td>
<td>1/1</td>
</tr>
<tr>
<td>$100</td>
<td>$100</td>
<td>$100</td>
<td>$100</td>
<td>$100</td>
<td>$100</td>
<td>$100</td>
</tr>
<tr>
<td>1/2</td>
<td>1/3</td>
<td>1/4</td>
<td>1/5</td>
<td>1/6</td>
<td>1/7</td>
<td>1/8</td>
</tr>
<tr>
<td>$100</td>
<td>$100</td>
<td>$100</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
What I have so far done, is:
$firstDay = strtotime( $data[0]['Date'] );
$firstSunday = strtotime('last sunday', $firstDay);
$lastDay = strtotime( $data[count($data)-1]);
$lastSaturday = strtotime('saturday', $lastDay);
$nights = (( $lastSaturday - $firstSunday ) / 86400) + 1;
$numWeeks = $nights / 7;
for ( $i=0; $i< $numWeeks; $i++) {
}
However I'm not sure if what I'm doing is right, that is looping through the weeks.. because I can't seem to get a reference to the day I want inside of that loop.
Previously, I did not need to generate the mm/dd row so I could rely on looping through all the days, but it's gotten more complex since I need two rows per week now.