根据值更改循环中的行颜色

时间:2013-07-11 13:10:04

标签: php

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

我的下面的代码有问题,在将第一行涂成蓝色后会使所有行变黄。

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

}

我需要这样的输出: enter image description here

5 个答案:

答案 0 :(得分:3)

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

$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>';

现在每组相等的值都具有相同的颜色,而下一组具有另一种颜色。 Looks like this

答案 1 :(得分: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

答案 2 :(得分: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>'; 
    }

输出:

output screenshot

答案 3 :(得分: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';  
  }

}

答案 4 :(得分: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;">
       }
     }
相关问题