我想制作简单的PHP日历。 例如:blog.tiger.com.pl/wp-content/uploads/2012/03/gcalendar.png 但只有一天,对于这个例子:6/26。
我有:
$hours = range(1, 24);
和
用html表显示这个小时:
<table>
<?php foreach($hours as $hour){ ?>
<tr><td><?php echo $hour ?> </td></tr>
<?php } ?>
</table>
我有:
$reservations = array(array('name' => 'first reservation for user Paul', 'from' => 6, 'to' => 8),
array('name' => 'second reservation for my group', 'from' => 11, 'to' => 14) );
但我不知道如何使用$reservations
将$hours
添加到我的foreach中。如果是预约,我希望红色背景从6到8和11到14以及从6到8之间显示来自索引名称的文本,以及11到14之间显示来自索引名称的文本。最好的方法是使用rowspan这个文本,但是怎么做?
答案 0 :(得分:1)
我会尝试设置一个“忙碌时间”的数组,如下所示:
(编辑为包含文字)
<?php
$busyhours = array;
foreach ( $reservations as $reservation ) {
$hours = $reservation['to'] - $reservation['from'];
while ($hours) {
$busyhours[] = $reservation['to'] + $hours;
$hours--;
}
$busyhours[$reservation['to']] = $reservation['name']; //made the busy hour the key.
}
?>
<table>
<?php foreach($hours as $hour){ ?>
<tr><!-- changed in_array() to array_key_exists b/c of above change -->
<td <?php if ( array_key_exists($hour, $busyhours) ) { echo "class='red-bg'"; } ?> >
<?php
echo $hour;
echo "<p>" . $busyhours[$hour] . "</p>";
?>
</td>
</tr>
<?php } ?>
</table>