使用PHP for循环创建星型模式

use*_*885 2 php loops for-loop

我试图回应星星和零,就像下面的模式

*
***0
******00
**********000
Run Code Online (Sandbox Code Playgroud)

但是我得到了这个结果

    *
    **0
    ***00
    ****000
    *****0000
    ******00000
Run Code Online (Sandbox Code Playgroud)

这是我的代码

for ($i=0; $i<=10; $i++)
{   
    echo "*";
    for ($j=0; $j<$i; $j++)
    {   
       echo "*";

    }
        for ($z=0; $z<$i; $z++)
            {
                echo "0";
            }       
    echo "</br>";    
} 
?>
Run Code Online (Sandbox Code Playgroud)

mel*_*okb 6

分的数量由三角形标记指示,1,1+2,1+2+3.您希望$i每次迭代都增加内循环最大值:

$k = 0;
for ($i=1; $i<=10; $i++)
{
    $k += $i;
    for ($j=1; $j<=$k; $j++)
    {   
       echo "*";
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

这也是一个很好的情况,你的循环应该初始化1而不是0,因为它更直观. 0使用数组时,基于循环的效果最佳.