0

PHPカレンダーを簡単に作成したいと思います。例:blog.tiger.com.pl/wp-content/uploads/2012/03/gcalendar.png ただし、この例では1日のみ: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しかし、foreachにを追加する方法がわかりません$hours。予約の場合、6〜8時間、11〜14時間、6〜8時間はインデックス名のテキストを表示し、11〜14時間はインデックス名のテキストを表示する赤い背景を希望します。これがこのテキストにrowspanを使用するのが最善の方法ですが、どのようにしたらよいでしょうか。

4

1 に答える 1

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>
于 2013-03-07T10:37:48.950 に答える