2011-08-05 81 views
0

我从数据库表中显示数据,并且我可以很容易地循环2种背景颜色,但是如何扩展它以合并3个或可能4种背景颜色?PHP在while循环中循环显示3种背景颜色

目前我有两个CSS类的代码:

PHP的echo $ I ++%2? 'class =“even”':'class =“odd”';

非常感谢

回答

0

我能想到的最简单的方法是incorperate switch语句:

switch($i % 3) 
{ 
    case 0: echo 'class="even"'; break; 
    case 1: echo 'class="odd"'; break; 
    case 2: echo 'class="..."'; break; 
} 

好了,我的是只是冗长哈哈

6

使用类数组,并使用结果模数(余数)作为索引。

$classes = array("odd", "even", "odder", "more_even"); 
for ($i=0; $i < 10; $i++) 
{ 
    echo $classes[$i%4]; 
} 

然后,您可以用数组的大小替换4以使其完全基于数组动态变化。

echo "<br>".$classes[$i%count($classes)]; 
+1

+1 for odder;)然而,你可能不想硬编码那4,只需要数组的数量。 – TJHeuvel

+0

只是在输入该内容时才更改解决方案。只是想让4进一步明确发生了什么。我也重新编辑,把单词“odder”放回去。:) – Gazler

0

这跟@Gazler的方法是一样的。但是,我正在使用while循环,因为你在谈论一个db-table(可能是MySQL?)。

$result = mysql_query($query); 
$i = -1; 
while ($row = mysql_fetch_array($result)) { 
    echo (($i++) % 2) ? 'odd' : 'even'; 
}