2011-08-05 124 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'; 
}