PHP循环模数

时间:2011-02-03 17:37:37

标签: php loops modulo

我想在循环中做到这一点:

<div class="global">
    <div class="left">1</div>
    <div class="right">2</div>
</div>
<div class="global">
    <div class="left">3</div>
    <div class="right">4</div>
</div>
<div class="global">
    <div class="left">5</div>
    <div class="right">6</div>
</div>
<div class="global">
    <div class="left">7</div>
    <div class="right">8</div>
</div>
<div class="global">
    <div class="left">9</div>
    <div class="right">10</div>
</div>

我知道做点什么链接:

for($i=0;$i<4;$i++){
    if($i %2){
        $classe='class="right"';
    }
    else{   
        $classe='class="left"';
    }

    echo "<div ".$classe." >".$i."</div>";
}

结果:

<div class="left">1</div>
<div class="right">2</div>
<div class="left">3</div>
<div class="right">4</div>

如何将div“global”整合到?

之间

非常感谢你的帮助

4 个答案:

答案 0 :(得分:2)

逐个迭代:

for ($i = 1; $i <= 4; $i += 2) {
    echo '<div class="global">';
    echo '<div class="left">' . $i . '</div>'
    echo '<div class="right">' . ($i+1) . '</div>'
    echo '</div>';
}

答案 1 :(得分:1)

你只需要一点额外的......

echo '<div class="global">';  //start the first global div

for($i=0;$i<4;$i++){
    if($i %2){
        $classe='class="right"';
    }
    else{   
        $classe='class="left"';
    }

    echo "<div ".$classe." >".$i."</div>";
    if($i %2)
    {
        //after each "right" div, close and open a new global div
        echo "</div>\n<div class=\"global\">";
    }
}

echo '</div>';  //close the final global div

你也可以压缩整个事情:

echo '<div class="global">';  //start the first div

for($i=0;$i<4;$i++)
{
    if($i %2)
    {
        echo "<div class=\"right\" >$i</div>\n</div>\n<div class=\"global\">";
    }
    else
    {
        echo "<div class=\"right\" >$i</div>";
    }
}

echo '</div>';  //close the final global div

答案 2 :(得分:1)

我喜欢printf。

$i=1;
while ($i < 8) {
    printf('<div class="global"><div class="left">%d</div><div class="right">%d</div></div>', $i++, $i++);
}

修改 虽然这并没有真正回答OP问题,但其他答案(尚未)根据问题标题使用模数。所以,这是另一种更丑陋的方式:)

echo '<div class="global">';

for($i=0;$i<8;$i++){
    if ($i %2) {
        $classe='right';
        $sep='</div><div class="global">';
    }
    else{   
        $classe='left';
        $sep='';
    }

    printf('<div class="%s">%d</div>%s', $classe, $i+1, $i<7?$sep:'');
}

echo '</div>';

答案 3 :(得分:0)

此代码有效:

echo '<div class="global">';  //start the first global div

for($i=0;$i<7;$i++){
    if($i %2){
        $classe='class="right"';
    }
    else{   
        $classe='class="left"';
    }

    echo "<div ".$classe." >".$i."</div>";
    if($i %2)
    {
        //after each "right" div, close and open a new global div
        echo "</div>\n<div class=\"global\">";
    }
}

echo '</div>';