我希望根据循环中的值更改tr背景颜色,因此如果下一条记录的值为X,则颜色应为蓝色,如果值更改为其他值,则颜色也应更改为黄色。
我的下面的代码有问题,在将第一行涂成蓝色后会使所有行变黄。
foreach ($arr as $key => $value)
{
if ($old_value == $value)
{
$colour = 'blue';
}
else
{
$colour = 'yellow';
$old_value = $value;
}
}
我需要这样的输出:
答案 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>';
现在每组相等的值都具有相同的颜色,而下一组具有另一种颜色。
答案 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>';
}
输出:
答案 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;">
}
}