嵌套循环PHP

时间:2018-05-05 17:21:12

标签: php

我有代码:

<?php
$number =9;
$number2 = $number / 2;
    for ($b=0; $b<=$number2; $b++){
        for ($i=$number; $i>=1; $i--){
            echo $i;
        }
        echo "<br/>";
        for ($a=1; $a<=$number; $a++)
        {
        echo $a;
    }
    echo "<br/>";
}
?>

我想要这样的结果。

987654321
123456789
987654321
123456789
987654321
123456789
987654321
123456789
987654321

为什么如果我把奇数放在9,为什么总是结果10循环?

2 个答案:

答案 0 :(得分:3)

循环中有两个循环,因此您将始终获得偶数行。

您实际上并不需要该结构,请参阅:

$number=9;
$k=0;
$sum=1;
for($i=1; $i<=$number; $i++) {
    for($j=1; $j<=$number; $j++) {
        $k+=$sum;
        echo $k;
    }
    echo '<br>';
    //Sum once again so in the next iteration $k is 0 or 10
    $k+=$sum;
    //Invert the sign of $sum so in the next iteration it substracts, and then adds, and so on
    $sum*=-1;
}

另请注意,从0$number 包含(更低或相等的比较),您将获得更多一次迭代(从0到9,有10个整数)。

答案 1 :(得分:0)

解决这个代码,加布里埃尔。

$number=9;
$k=0;
$sum=1;
for($i=1; $i<=$number; $i++) {
    for($j=1; $j<=$number; $j++) {
        $k+=$sum;
        echo $k;
    }
    echo '<br>';
    //Sum once again so in the next iteration $k is 0 or 10
    $k+=$sum;
    //Invert the sign of $sum so in the next iteration it substracts, and then adds, and so on
    $sum*=-1;
}