-1

我希望根据循环中的值更改 tr 背景颜色,因此如果接下来的几条记录的值为 X,则颜色应为蓝色,如果将值更改为其他值,则颜色也应更改为黄色。

我下面的代码有问题,它在将第一个行绘制为蓝色后使所有行都变黄。

foreach ($arr as $key => $value)
{
  if ($old_value == $value)
  {
    $colour = 'blue';
  }
  else
  {
    $colour = 'yellow';
    $old_value = $value;
  }

}

我需要这样的输出: 在此处输入图像描述

4

5 回答 5

4

您需要根据最后使用的颜色更改颜色,例如

$arr = array(1,1,1,4,4,7,3);
$old_value = 0;
$colour = 'blue';
echo '<table>';
foreach ($arr as $key => $value)
{
    if ($old_value == $value)
    {
        //colour stays the same
    }
    else
    {
        if($colour == 'blue')
        {
            $colour = 'yellow';
        }
        else
        {
            $colour = 'blue';
        }
        $old_value = $value;
    }
    echo '<tr style="background-color:' .$colour . '"><td>' . $value . '</td></tr>'; 
}
echo '</table>';

现在每组相等的值都将具有相同的颜色,而下一组具有另一种颜色。 看起来像这样

于 2013-07-11T13:24:55.243 回答
2

确保您使用正确的循环:

foreach ($arr as $key => $value)
{
  if ($old_value == $value)
  {
    $colour = 'blue';
  }
  else
  {
    $colour = 'yellow';
    $old_value = $value;
  }

  //now $color has the desired value
  //so now you should echo your tr

}

//now $color contains just the last row
于 2013-07-11T13:15:38.637 回答
2
$arr = ['something', 'something else', 'another something'];
$old_value = "";
foreach ($arr as $key => $value){
    if ($old_value == $value){
        $colour = 'blue';
    }
    else{
    $colour = 'yellow';
    $old_value = $value;
    }
    echo '<tr style="background-color:' .$colour . '"><td>' . $value . '</td></tr>'; 
    }

输出:

输出截图

于 2013-07-11T13:16:45.407 回答
1

你可能会喜欢

$i=0;
$old_value = "";

foreach ($arr as $key => $value)
{
  if ($old_value != $value)
  {
    $old_value = $value;
    $i++;
  }

  if($i % 2 == 1)
  {
    $colour = 'yellow';        
  } else {
    $colour = 'blue';  
  }

}
于 2013-07-11T13:15:10.157 回答
0
 $i=0;
 foreach($resultex as $rowex)
      {
 if ($old_value != $rowex)
      {
        $old_value = $rowex;
        $i++;
      }

    if($i%2 == 1)
               {
             <tr  style="background-color:#f3f3f3;color:#000;">
       }
            else 
               {
              <tr  style="background-color:#fff;color:#000;">
       }
     }
于 2013-08-30T11:31:49.287 回答