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

あなたのサイトを見学した場合は、コピーを修正します。

$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)
{
  //
  // get the appointing state:
  //
  $bAppointed = false;
  for($i = 0; $i < count($app_data); $i++)
  {
    $book_time = $app_data[$i]["appointment_time"];
    $bAppointed = $value == $book_time;
    if($bAppointed)
    {
      break;
    }
  }
  //
  // print the time slot:
  //
  if($bAppointed)
  {
     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>";

?

それは良いですか?

于 2013-10-15T16:59:16.047 に答える