如何从 CSV 导入数据时更改特定列的背景颜色


How to change one particular column's background color when importing data from a CSV

我使用此解决方案将CSV数据导入HTML表中。现在该表有 7 列(但行数会不时从 20-60 不等)。我的客户要求我将第 5 列的背景颜色更改为其他颜色,以便一个特定的列从其他列中脱颖而出。我该怎么做?

我的代码:

 <?php
 $f = fopen("so-csv.csv", "r");
 while (($line = fgetcsv($f)) !== false) {
    echo "<tr>";
    foreach ($line as $cell) {
       echo "<td>" . htmlspecialchars($cell) . "</td>";
    }
    echo "</tr>'n";
 }
 fclose($f);
 ?>

更新

谢谢roullie & Ghost的快速回复!但是,我忘了提到我的客户希望表格有 2 种颜色,例如,如果所有列都是红色的,则只有第 5 列是灰色的。所以我有...

foreach ($line as $cell) {
  echo '<td style="background-color: #892525;">' . htmlspecialchars($cell) . '</td>';
}

现在我该如何将您的解决方案添加到此?

只需在 foreach 循环内添加一个键检查:

foreach ($line as $k => $cell) {
   // index starts at zero
   $color = ($k == 4) ? '#ccc;' : '#892525;';
   $class = "style='background-color: $color'";
   echo "<td $class>" . htmlspecialchars($cell) . "</td>";
}
    <?php
 $five = 5;
 $ctr = 1;
 $f = fopen("so-csv.csv", "r");
 while (($line = fgetcsv($f)) !== false) {
    echo "<tr>";
    foreach ($line as $cell) {
       echo "<td ".($ctr==$five?"style='background:red":"").">" . htmlspecialchars($cell) . "</td>";
    }
    echo "</tr>'n";
    $ctr++;
 }
 fclose($f);
 ?>