On Tue, 2009-08-11 at 11:28 +0100, David Otton wrote: > 2009/8/11 Daevid Vincent <daevid@xxxxxxxxxx>: > > > NO! For the love of God and all that is holy, don't do that accumulator / > > mod "hack". > > That's sooooo 1980's. And why make the CPU do all that math for every row... > > > > Just do this. It's quick and simple: > > > > CSS: > > .dataRow1 { background-color: #DFDFDF; } > > .dataRow2 { background-color: #FFFFFF; } > > > > foreach ($foo_array as $foo) { > > ?><tr class="<?= ($dr = !$dr) ? "dataRow1" : "dataRow2" ?>"><td><?= $foo > > ?></td></tr><?php > > } > > A change request just came in - the interaction designer wants every > third line to have a grey background, instead of every second line. > > > No need to initialize $dr as by default PHP will make it a boolean "false", > > then each itteration, it will toggle true/false and substitute the CSS class > > Um. No. Just no. > I tend to do something like this: $count = 0; foreach($foo_array as $foo) { $class = ($count % 3 == 0)?'class="thirdRow"':''; print "<tr $class><td>$foo</td></tr>"; } You only need to give one row the class, as you style up all the rows and only change the row that needs to change. Thanks, Ash http://www.ashleysheridan.co.uk -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php