Как изменить цвет фона одного конкретного столбца при импорте данных из 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 & привидение за ваши быстрые ответы! Однако я забыл упомянуть, что мой клиент хочет, чтобы таблица имела два цвета, например если все столбцы красные, только 5-й будет серым. Итак, я имел …

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

Теперь, как я могу добавить ваше решение к этому?

2

Решение

Просто добавьте проверку ключа в цикле 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>";
}
1

Другие решения

    <?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);
?>
1

По вопросам рекламы [email protected]