PHP – Odd/Even Table Rows

Alternate row colors (or zebra striping) is a great way to make long lists and tables easier to read. This technique is especially useful for large tables. In PHP, we can easily change the color of every other row of this table by using a ternary operator inside a while loop.

Consider the following code:

<table>
<?php
$class = 'class="red"'; // Set the initial background color.
$a = 1;
while ( $a<7 ) {
    $class = ($class=='class="red"' ? 'class="blue"' : 'class="white"'); // Switch the background color.
    echo '<tr ' . $class . '><td>list</td></tr>';
    $a++;
}
?>
</table>

Since we want to alternate the background color, this code will, upon each iteration of the loop, assign the opposite class to the $class. If $class is equal to white, then it will be assigned the value of blue and vice versa. For the first row fetched, $class is initially equal to white and will therefore be assigned blue, making a blue background.

Photo by Hammerin Man

1 comment

  1. Jeremy Freedman - September 13, 2016 12:44 am

    Try using #tblName tr:nth-child(odd){….} in css to do the same job with less total output text

    Reply

Have your say