2011-08-05 6 views
0

私はdbテーブルからデータを表示していますが、2つの背景色をかなり簡単にループできますが、どのようにして3つまたは4つの背景色を組み込むことができますか?whileループで3つの背景色をループする

現在、私は2つのCSSクラスのためにこのコードを持っている:

PHPは私が%2 ++を$エコー? 'class = "even"': 'class = "odd"';

感謝

答えて

0

は、私が考えることができる最も簡単な方法は、switch文をincorperateすることです:

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

[OK]を、私のは、ただ冗長笑

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 odder;)しかし、あなたはその4をハードコードしたくないかもしれません。ちょうど配列の数をとってください。 – TJHeuvel

+0

入力したとおりにソリューションを変更していただけでした。何が起きているのかを明白にするために4インチを維持したかっただけです。私はまた "odder"という言葉を入れ直すように編集し直した。:) – Gazler

0

これは@ Gazlerのアプローチと同じです。しかし、あなたはdbテーブル(おそらくMySQL?)について話しているので、私はwhileループを使用しています。

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