0

foreachループ内の6divごとに異なるクラス名を付ける必要があります。以下のアイデアはうまくいくと思いましたが、すべてのアイテムが同じdivを取得しているようです。

<?php $num = 0; ?>
<?php foreach ($divs as $div): ?>

    <?php if($num % 1 == 0): ?>
    <div class="threecol grey one">
    <?php elseif($num % 2 == 1): ?>
    <div class="threecol green two ">
    <?php elseif($num % 3 == 2): ?>
    <div class="sixcol blue last three">
    <?php elseif($num % 4 == 3): ?>
    <div class="threecol grey">
    <?php elseif($num % 5 == 4): ?>
    <div class="sixcol blue">
    <?php elseif($num % 6 == 5): ?>
    <div class="threecol green last">
    <?php endif; ?>

        Rest of html

    </div>

<?php $num++ ?>
<?php endforeach; ?>

単純化するために私は基本的に必要です

1st / 7th / 13th / 19th ... etc div to be<div class="threecol grey">

2日/8日/14日/20日...など<div class="threecol green">

3日/9日/15日/21日...など<div class="sixcol blue last">

4日/10日/16日/22日 <div class="threecol grey">

5日/11日/17日/23日 <div class="sixcol blue">

6日/12日/18日/24日 <div class="sixcol blue">

4

4 に答える 4

1

とても醜い...どうして

$classes = array('grey one', 'green two', 'blue last three', 'grey', 'blue', 'green last');
foreach($divs as $div) {
   $class = $classes[$i++ % 6];
   echo '<div class="threecol ' . $class . '">';
}

主な問題は、モジュロ演算で除数を継続的に変更しているため、剰余が常に0になることです。

于 2013-01-14T18:57:49.483 に答える
1

剰余をもたらすモジュロ演算子を誤解しています。したがって、その操作には余りがないため、常に% 1ゼロになります。あなたはこれをしたい:

$num % 6 == 1
...
$num % 6 == 2

など。$num % 6事前に実行して、変数に格納することもできます。

于 2013-01-14T18:59:25.683 に答える
0
<?php if(floor($num / 6) == 0): ?>
<div class="threecol grey one">
<?php elseif(floor($num / 6) == 1): ?>
<div class="threecol green two ">
<?php elseif(floor($num / 6) == 2): ?>
<div class="sixcol blue last three">
<?php elseif(floor($num / 6) == 3): ?>
<div class="threecol grey">
<?php elseif(floor($num / 6) == 4): ?>
<div class="sixcol blue">
<?php elseif(floor($num / 6) == 5): ?>
<div class="threecol green last">
<?php endif; ?>

これにより、次のようになります。

  • threecol grey one0から5までの列の場合
  • threecol grey two6から11までの列の場合
  • 等..
于 2013-01-14T18:57:10.540 に答える
0
<?php foreach ($divs as $i => $div): ?>
    <?php if($i % 6 == 0): ?>
    <div class="threecol grey one">
    <?php elseif($i % 6 == 1): ?>
    <div class="threecol green two ">
    <?php elseif($i % 6 == 2): ?>
    <div class="sixcol blue last three">
    <?php elseif($i % 6 == 3): ?>
    <div class="threecol grey">
    <?php elseif($i % 6 == 4): ?>
    <div class="sixcol blue">
    <?php elseif($i % 6 == 5): ?>
    <div class="threecol green last">
    <?php endif; ?>
        Rest of html
    </div>
<?php endforeach; ?>

switchcaseステートメントの使用を検討してください。

于 2013-01-14T18:59:04.167 に答える