0
$array_of_time = array ();
$start_time    = strtotime ("$app_date 07:00");
$end_time      = strtotime ("$app_date 22:00");
$mins  = 04 * 60;

while ($start_time <= $end_time)
{
   $array_of_time[] = date ('h:i a', $start_time);
   $start_time += $mins;
}

echo "<div style='width:700px' class='time_slot_div'>";
echo "<p class='time_slot_p'> Time Slot :</p>";

foreach($array_of_time as $key=>$value)
{

    for($i = 0; $i < count($app_data); $i++)
    {
        $book_time=$app_data[$i]["appointment_time"];
        if($value==$book_time)
        {
           echo "<a  class='time_slot_a_book'>$value</a>&nbsp;";    
        } else {
           echo "<a href='#' onclick='get_time_value(\"$value\");' class='time_slot_a'>$value</a>&nbsp;";
        }
    }
}

echo "</div>";

ここで foreach ループは for ループと同様に何度でも実行できますが、foreach 値と for ループ値に一致しないリンクを表示したいと思います。

午前 7 時 20 分などの foreach ループ値はデータベースからではなく、午前 7 時 20 分などの for ループ値はデータベースからのものであるため、午前 7 時 20 分 == 午前 7 時 20 分であれば、実行される if ステートメントは正常に動作しますが、問題は、for ループで 2 つの値を取得すると、2 回実行されることです。私のdivを一度だけ実行する必要があります。

4

1 に答える 1

0

配列を使用して、表示されたアイテムを格納します。

<?php

foreach($array_of_time as $key=>$value)
{
    $tag_list = array();
    for($i = 0; $i < count($app_data); $i++)
    {
        $book_time=$app_data[$i]["appointment_time"];

        // shown, skip
        if (isset($tag_list[$book_time]))
        {
            continue;
        }

        // mark as show
        $tag_list[$book_time] = 1;

        if ($value == $book_time)
        {
            echo "<a  class='time_slot_a_book'>$value</a>&nbsp;";
        }
        else
        {
            echo "<a href='#' onclick='get_time_value(\"$value\");' class='time_slot_a'>$value</a>&nbsp;";
        }
    }
}
于 2013-10-14T12:53:01.833 に答える