0

我正在尝试PHP像这样制作一个金字塔计划:

    1
   21
  321
 4321
54321

我试过这个:

for($i=1;$i<=5;$i++)
{
    for($j=1;$j<=$i;$j++)
    {
        echo $j;
    }
    echo "<br>";
}

但它正在创建一个像这样的金字塔:

1
12
123
1234
12345

我在过去的 6 个小时里都在尝试这个,但做不到。谁能帮我这样做。

提前致谢

4

7 回答 7

5

多一点创意:

$width = 9;

foreach (range(1, $width) as $i) {
    printf("%{$width}s\n", join(array_reverse(range(1, $i))));
}

http://3v4l.org/rFB0Y

于 2013-03-27T14:16:27.680 回答
2
for($i=1;$i<=5;$i++)
{
    for($j=5; $j>$i; $j--)
    {
        echo "&nbsp;";
    }
    for($j=$i; $j>0; $j--)
    {
        echo $j;
    }
    echo "<br>";
}
于 2013-03-27T14:05:25.143 回答
0
for($r=1; $s>=$r; r++)
 {
   for($p=$s-$r; $p>=1; $p--)
      echo(" ");

   for($c=1; c<=$r; c++)
      print_r($c);

   for($x=$r-1; $x>=1; x--)
     print_r($x);

 }
于 2013-03-27T15:34:24.457 回答
0

尝试这个 :

$cnt    = 5;
$array  = array_fill(0, ($cnt), '0');

for($i=1;$i<($cnt+1);$i++){
    array_shift($array);
    array_push($array, $i);
    echo implode(" ", $array);
    echo "<br>";
}

为了获得更好的视图,我添加了0而不是space, 将 Space 更改$array = array_fill(0, ($cnt-1), '0');$array = array_fill(0, ($cnt-1), '&nbsp;');

输出 :

0 0 0 0 1
0 0 0 1 2
0 0 1 2 3
0 1 2 3 4
1 2 3 4 5
于 2013-03-27T14:16:47.987 回答
0

这是你想要的吗 :) ?

for($i=1;$i<=5;$i++)
{
    $string = null;
    for($j=1;$j<=$i;$j++)
    {
        $string .= $j;
    }
    echo strrev($string) . "<br>";
}
于 2013-03-27T14:09:05.683 回答
0

这是我的贡献:

$o = '';
echo "<pre>";

for($i = 1; $i < 6; $i++)
{
    $o .= $i;
    for($x = 0; $x < 5-$i; $x++)
        echo " ";
    echo $o . "\n";
}

echo "</pre>";

例子

于 2013-03-27T14:09:15.137 回答
0
for($i=1;$i!=6;$i++)
{
    for ($z = 5-$i; $z != 0; $z--) {
        echo "&nbsp;";
    }

    for ($z = $i; $z > 0; $z--) {
        echo $z;
    }
    echo "<br>";
}
于 2013-03-27T14:09:16.357 回答