1

次のようなforeachループ中に、奇数/偶数クラスを切り替えています。

<?php
  $count = 0;
  foreach ($pages as $page) { ?>

   <div class="row <php echo (++$count%2 ? "odd" : "even") ?>">
     ...page_list or product_list output
   </div>

<php } ?>

しかし、3つ以上のcssクラスをどのように切り替えるのでしょうか?

正しい方向へのポインタをいただければ幸いです。

乾杯

ベン

4

6 に答える 6

2

それらを配列に入れ、モジュロ演算子を使用します。

<?php
  $count = 0;
  $classes = array('one', 'two', 'three');

  for ($i = 0; $i < 10; $i++) {
    $count = ++$count % count($classes);
    $class = $classes[$count];
  ?>

   <div class="row <?php echo $class ?>">
     ...
   </div>

<?php } ?>
于 2013-03-08T04:03:04.390 に答える
1

同じ構造を維持したい場合は、ターナリをネストできます。

echo (++$count%3==0 ? "3" : ($count%3==1 ? "3+1" : "3+2"))
于 2013-03-08T04:00:36.497 に答える
1

配列のキーペアが数値の場合、key => value出力でforeachループを使用し、numbulus演算子でキーを評価できます。次に、結果をswitchステートメントで使用します。

配列キーが数値でない場合は、foreachループの前に変数を設定し、反復ごとに変数をインクリメントして、その値を確認できます。

<?php
$pages = Array('page1', 'page2', 'page3');

foreach ($pages as $key => $page) :

  switch ( $key % 3 ) { (3 is the number of available cases)
    case 0:
      $class = 'class1';
      //…
      break;
    case 1:
       $class = 'class2 foo';
       //…
      break;
    case 2:
      $class = 'bar';
      //…
      break;
  endswitch;

  echo '<div class="' . $class . '">';
  //…
  echo '</div>';

endforeach;
?>
于 2013-03-08T04:02:28.583 に答える
0

複数のCSSを切り替える最良の方法は、

制御構造のSwitchステートメント

于 2013-03-08T03:59:15.637 に答える
0

持っているclass1class2そしてclass3

<?php
  $count = 0;
  foreach ($pages as $page) {
  $count = $count == 3 ? 0 : $count++;
?>
   <div class="row <?php echo "class".$count ?>">
     ...page_list or product_list output
   </div>
<?php } ?>
于 2013-03-08T04:02:36.383 に答える
0

elseステートメントを使用できる場合は、必ずmod番号を変更してください。

これを試して:

        <div class="row 
    <php
        ++$count;
        if($count % 3 == 0)
        {
            echo "style2";
        }
        else if($count % 3 == 1)
        {
            echo "style2";
        }
        else
        {
            echo "style3";
        }
    ?>
    ">
    ...page_list or product_list output
    </div>

<php } ?>
于 2013-03-08T04:04:07.803 に答える