1

(デフォルトの1ではなく)すべての行に3つのアイテムがある順序付けられていないリストがあります。次に、行の色を変更します。どうすればいいですか?

だから基本的に私はこのようなことをしたいです:

if ($listCount == 1, 2, 3 OR 7, 8, 9 OR 13, 14, 15) {
    $alternateRow = "rowOdd";
}
else {
    $alternateRow = "rowEven";
}

(これは構文エラーであり、説明しようとしているだけです)

モジュラスで可能だと思いますが、正直なところ、それがどのように機能するのかよくわかりません。

4

5 に答える 5

7

確かに、モジュロ。をテストできます($listCount - 1) % 6 < 3

于 2012-11-28T14:15:04.980 に答える
1

元のポスターはモジュロで明確ではなかったので、次にそれが必要になったときに使用できるように、それがどのように機能するかを説明するのに役立つと思います. モジュロ演算子 (%) は、2 つのオペランド間の除算の余りを決定することによって機能します。

モジュロのルールは次のとおりです。

if left < right: left % right = left
if left > right: left % right = remainder of left / right

例えば:

 - 1  % 6  = 1 ( 1 < 6 so the answer is 1    ) 
 - 7  % 6  = 1 ( 7/6 = 1 with remainder of 1 ) 
 - 10 % 6  = 4 ( 10/6 = 1 remainder of 4     ) 
 - 6  % 6  = 0 ( 6/6 = 1 with 0 remainder    )

したがって、あなたの場合、123 (それぞれ 1,2,3 % 6 の場合) が得られ、4,5,6 % 3 では 450 が得られます。次に、7,8,9 % 6 では 123 が得られます。10,11, 12 は再び 450 になり、それが永遠に続きます。したがって、コードは次のようになります。

// check that list count is less than three but not = 0
// (only true when mod yields 1,2, or 3)
if($listCount % 6 < 3 && $listCount % 6 == 0){
  $alternateRow = "rowOdd";
} else {
  $alternateRow = "rowEven";
}
于 2012-11-28T14:32:56.867 に答える
1

それを完全にcssで行うのはどうですか? http://css-tricks.com/how-nth-child-works/

于 2012-11-28T14:21:12.383 に答える
0

または、次のようにモジュロを使用します。

<?php

$numRecords=9;

for ($i = 0; $i < $numRecords; $i++)
{
 $className = "";
 if (($i % 3) == 0)
 {
  $className = "third";
  echo "i = " . $i;
 }
 else
 {
  $className = "other";
 }

}
?>
于 2012-11-28T14:18:31.887 に答える
0
int i = 0;
 $Value = "rowEven";
while ()
{
  while (i < 3)
  {
    $alternateRow = $value
    i++;
  }
  i = 0;
  if ($value == "rowOdd")
    $Value = "rowEven";
  else
    $Value = "rowOdd"
}
于 2012-11-28T14:15:17.753 に答える