每10个ID块更改表颜色

时间:2018-10-03 16:26:33

标签: php

我需要制作一个需要更改为3种不同颜色的表,每块10行

Id 1 -> 10 Red

Id 11 -> 20 Green

Id 21 -> 30 Blue

Id 31 -> 40 Red

依此类推

这是我尝试使用2种不同颜色的代码

<?php
  for ($i = 0; $i <= 40; $i++) {
    if($i % 10 == 0)
      {echo "<td class=\"dark\">$i</td>";}
    else 
      {echo "<td class=\"light\">$i</td>";}
   }
?>

但是类每10个变为“暗”,例如10、20、30、40,其他值保持“亮”

2 个答案:

答案 0 :(得分:0)

未经测试,但类似于以下内容:

$useColor = '';
for ($i = 0; $i <= 40; $i++) {
    if($i % 10 == 0)
      if ($useColor == 'color1') {
        $useColor = 'color2';
      } elseif ($useColor == 'color2') {
        $useColor = 'color3';
      } elseif ($useColor == 'color3') {
        $useColor = 'color4';
      } else {
        $useColor = 'color1';
      }
    }
    echo "<td class=\"$useColor\">$i</td>";}
}

答案 1 :(得分:-1)

首先像这样移动您的ID:

Id 0 -> 9 Red

Id 10 -> 19 Green

Id 20 -> 29 Blue

Id 30 -> 39 Red

以此类推。

每种颜色ID都有一个顺序

对于红色,我们有

Id 0 -> 9
Id 30 -> 39
Id 60 -> 69
Id 90 -> 99
Id 120 -> 129

以此类推。

现在再次注意另一个序列

0
30
60
120

所有数字除以30都会得到0的余数

类似地针对绿色ID

Id 10 -> 19
Id 40 -> 49
Id 70 -> 79
Id 100 -> 109
Id 130 -> 139

再次注意另一个序列10, 40, 70, 100, 130。当除以30时,所有这些数字的余数为10

最后为蓝色ID,我们有:

Id 20 -> 29
Id 50 -> 59
Id 80 -> 89
Id 110 -> 119
Id 140 -> 149

20, 50, 80, 110, 140除以30所得的余数为20。

现在是该代码的时候了

$j = 0; //$j return the last digit of the integer
$k = 0; //difference btw $i and $j 
for ($i = 0; $i <= 1000; $i++) {
    $j = (string)$i;// type casting int to string
    $j = (int) $j[strlen($j)-1]; //get last digit from $i
    $k = $i - $j; //get rid of the last digit in $i

    if ($k % 30 == 0) echo '<br>red';
    if ($k % 30 == 10) echo '<br>green';
    if ($k % 30 == 20) echo '<br>blue';
}

这对我有用,因为我测试了代码。我希望它能使您满意。

您还可以使用以下条件:

if ($k % 30 == 0) {echo '<br>red';}
elseif ($k % 20 == 0) {echo '<br>green';}
elseif ($k % 10 == 0) {echo '<br>blue';}

这也很好。在此问题中,最重要的是从$j中查找并减去$i