2015-11-01 33 views
-3

我有一个问题。 我想学习PHP,有人告诉我做“明星”练习是学习循环的好方法。 我自己得到了很多,但现在我完全卡住了。PHP for循环拼图

这是我的代码;

for ($row = 0; $row < 11; $row++) 
{ 
    for($Y = 0; $Y < 1; $Y++){ 
    echo "Y";     
    } 
    for($O = 0; $O < 5; $O++){ 
    echo "O"; 
    } 
    if ($O <=5) { 
    echo "</br>"; 
    } 
} 

我试图将以下内容打印到我的浏览器中;

Y O O O O O 
O Y O O O O 
O O Y O O O 
O O O Y O O 
O O O O Y O 
O O O O O Y 
O O O O Y O 
O O O Y O O 
O O Y O O O 
O Y O O O O 
Y O O O O O 

我希望你能帮助我!

在此先感谢!

+0

你现在有什么? –

+0

“Y”符号只在每一行的第一位。 –

+1

为什么会发生这种情况? –

回答

0
$n=11; 


for ($row = 0; $row < $n-1; $row++) 
{ 
    for($line=0; $line < $n;$line++){ 

    if ($row==$line) { 
     echo 'Y'; 
    } 
    else 
     echo 'o';} 
    echo '</br>'; 
} 
for ($row = $n-1; $row > 0; $row--) 
{ 
    for($line=0; $line < $n;$line++){ 

    if ($row==$line) { 
     echo 'Y'; 
    } 
    else 
     echo 'o';} 
    echo '</br>'; 
} 

这是一个开始,只要按照矩阵水平,而当你在当前行打印Y.然后,朝开始最后一排开始。这将打印两个矩阵与他们的对角线。

它可以优化只有一个循环,直到$ n的一半,前进Y,然后在后半部分。