0

無限の div で出力されているコンテンツがあります。次のように、リスト項目内で 3 の倍数を囲みたいと思います。

<li>
   <div>content</div>
   <div>content</div>
   <div>content</div>
</li>
<li>
   <div>content</div>
   <div>content</div>
   <div>content</div>
</li>

次のコードでこれを達成しようとしていますが、何らかの理由で機能していません。各 div を独自の li で囲むだけです。

$i = 1;
if($setting) {
    echo '<li>';
    echo '<div>My div</div>';
    if ($i % 3 == 0) { 
        echo '</li><li>'; 
        }
    $i++;
    }
    echo '</li>';
} 
4

1 に答える 1

2

あなたのループがなければ、あなたが間違っていることを言うのは難しい.

しかし、ここに解決策があります。

$numOfDivs = 12;

for ($thisDiv=0; $thisDiv < $numOfDivs; $thisDiv++) {
    if ($thisDiv==0) echo '<li>';
    else if ($thisDiv%3==0) echo '</li><li>';
    echo '<div>My Div</div>';
    if ($thisDiv == $numOfDivs-1) echo '</li>';
}

これにより目的の出力が生成されますが、目的の出力は無効な HTML であることに注意してください。

于 2013-04-02T21:10:26.010 に答える