PHP for loop puzzle

时间:2015-11-01 16:39:33

标签: php for-loop

我有一个问题。 我正在尝试学习PHP,有人告诉我,做“明星”练习是学习循环的好方法。 我自己走得很远,但现在我完全卡住了。

这是我的代码;

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

我希望你能帮助我!

提前致谢!

1 个答案:

答案 0 :(得分: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,然后是后半个向后。