Php 更改函数foreach循环内的变量

Php 更改函数foreach循环内的变量,php,function,variables,foreach,global,Php,Function,Variables,Foreach,Global,我有一个我解决不了的问题。我认为这是一个简单的修复,但经过3个小时的搜索和跟踪错误。我决定在这里问一个问题: 这是我的时间表应用程序的时间函数 date_default_timezone_set('Europe/Amsterdam'); $current_time = time(); $unixtime = $current_time; $time = date("Gi",$unixtime); global $time; function time_left($time, $active_

我有一个我解决不了的问题。我认为这是一个简单的修复,但经过3个小时的搜索和跟踪错误。我决定在这里问一个问题:

这是我的时间表应用程序的时间函数

date_default_timezone_set('Europe/Amsterdam');
$current_time = time();
$unixtime = $current_time;
$time = date("Gi",$unixtime);

global $time;

function time_left($time, $active_class, $maxtime, $mintime){
    if($time < $maxtime and $time > $mintime){
                global $active_class;
        $active_class = 'active';
        echo 'succes!';
    }
}
date\u default\u timezone\u set('Europe/Amsterdam');
$current_time=time();
$unixtime=$current\u time;
$time=日期(“Gi”,$unixtime);
全球美元时间;
函数剩余时间($time、$active\u class、$maxtime、$mintime){
如果($time<$maxtime和$time>$mintime){
全球$active_类;
$active_class='active';
呼应‘成功!’;
}
}
这是我的foreach循环,我循环一个数组

foreach($rows as $row){
switch($hours){
 case 1:
    $t = '8:45 - 9:15';
    $mintime = 845;
    $maxtime = 914;
    time_left($time, $maxtime, $mintime);
  break;
 case 2:
    $t = '8:45 - 9:15';
    $mintime = 845;
    $maxtime = 914;
    time_left($time, $maxtime, $mintime);
  break;

  /* etc.. etc.. etc... */

}   
  echo "<li class='" . $active_class ."'>";
  echo "<div class='right'></div>";
  echo "<div class='hour'>", $times, "</div><span class='divider-time'>|</span>";

  $hours++;
  $i = 0;
  foreach($row[$day] as $r[1]){
    $i++;
    if ($i == 1) {
      $class = 'vk';
   } elseif ($i == 2) {
   $class = 'lok';
   } elseif ($i == 3) {
   $class = 'doc';
   }
    echo "<span class='" . $class . "'>", $r[1],  "</span>";
   }
     echo "</li>";
     $class++;
}
foreach($rows作为$row){
交换机(小时){
案例1:
$t='8:45-9:15';
$mintime=845;
$maxtime=914;
剩余时间($time,$maxtime,$mintime);
打破
案例2:
$t='8:45-9:15';
$mintime=845;
$maxtime=914;
剩余时间($time,$maxtime,$mintime);
打破
/*等等等等等等等等*/
}   
echo“
  • ”; 回声“; 回音“$次,”; $hours++; $i=0; foreach($row[$day]为$r[1]){ $i++; 如果($i==1){ $class='vk'; }elseif($i==2){ $class='lok'; }elseif($i==3){ $class='doc'; } 回音“$r[1]”; } 回声“
  • ”; $class++; }
    我成功了在正确的位置回音。但是活动类不能正常工作。其背后的思想是活动类仅显示在一行上。现在它搜索一个匹配项,它后面的所有内容也会得到活动类


    非常感谢advanced。

    您应该在每次迭代中重新启动
    $active\u类
    变量。 否则,一旦设置为
    active
    ,它将不会再次更改其值

    foreach($rows as $row){
        $active_class = '';
    
        //YOUR CODE HERE
        ....
    }
    

    非常感谢,就这么简单!如果效果良好,您可以在几分钟内接受答案:)