PHP用for循环包装数字

时间:2017-09-20 14:07:05

标签: php loops

我有这个PHP代码:

$count = 8;

    echo '<div style="background-color:green">';

    for($i=1; $i<=$count; $i++) {
        echo $i;

        if($i%2 == 0) {
            echo '</div><div style="background-color:green">';
        }
    }

    echo '</div>';

这样做的目的是将数字包装在每2个绿色背景颜色的div中。我想在代码片段中制作类似的内容

<div style="background-color:green">12</div>
<div style="background-color:yellow">34</div>
<div style="background-color:green">56</div>
<div style="background-color:yellow">78</div>

我怎么能在PHP中这样做?请帮忙。在此先感谢=)

4 个答案:

答案 0 :(得分:1)

你可以做到这样的效果:

        // your file name      // query string
 echo "{$_SERVER['PHP_SELF']}?{$_SERVER['QUERY_STRING']}";

甚至更简单直接:

<?php   
    $count          = 8;
    $colorMatrix    = ['odd'=>'green', 'even'=>'yellow'];

    for($i=1; $i<=$count; $i++) {
        $oddEven    = ($i%2) ? "odd" : "even";
        echo "<div style='background-color:{$colorMatrix[$oddEven]}'>{$i}</div>";   
    }

答案 1 :(得分:1)

要匹配您的代码段,请从12开始,每次迭代增加22。为我的粉丝改为DRY。

<?php
$start = 12;
$end = 78;

for ($i=$start; $i<=$end; $i=$i+22) {
    echo '<div style="background-color:'.($i%4 == 0 ? 'green' : 'yellow').'">'.$i.'</div>';
}

结果:

<div style="background-color:green">12</div>
<div style="background-color:yellow">34</div>
<div style="background-color:green">56</div>
<div style="background-color:yellow">78</div>

使用带有foreach的{​​{1}}:

也可以达到同样的效果
range()

答案 2 :(得分:1)

您可以使用if else条件执行此操作。假设$ i是奇数,那么颜色为黄色,然后是其他绿色。我添加了一些选项,可以给你相同的结果。

选项1。

<?php
    $count = 8;
    for($i=1; $i<=$count; $i++) {
        $color = $i%2 == 0 ? 'green' : 'yellow';
        echo '<div style="background-color:'.$color.'">'.$i.'</div>';
    }

选项2。

<?php
$count = 8;
for($i=1; $i<=$count; $i++) {
    if ($i%2 == 0) {
        $color = 'green';
    } else {
        $color = 'yellow';
    }
    echo '<div style="background-color:'.$color.'">'.$i.'</div>';
}

选项3。

<?php
$count = 8;
for($i=1; $i<=$count; $i++) {
    $color = 'yellow';
    if ($i%2 == 0) {
        $color = 'green';
    }
    echo '<div style="background-color:'.$color.'">'.$i.'</div>';
}

答案 3 :(得分:0)

也许这个?

$count = 8;

        for($i=1; $i<=$count; $i++) {        

            if($i%2 == 0) {
                echo '</div><div style="background-color:green">'.$i;
            }else{
                echo '<div style="background-color:yellow">'.$i;
            }

            echo '</div>'
        }