-8

我在创建星号金字塔时遇到问题。请看我的代码。

  <?php

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

    ?>

结果:

*
**
***
****
*****

我的问题是我将如何做到这一点。

    *
   * *
  * * *
 * * * * 
* * * * *
4

6 回答 6

10
<pre><?php

$n = $i = 5;

while ($i--)
    echo str_repeat(' ', $i).str_repeat('* ', $n - $i)."\n";

?></pre>
于 2012-11-06T12:30:38.920 回答
4

<center> </center>在标签中使用相同的程序!喜欢:

<center>
<?php

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

?>
</center>
于 2013-09-01T13:37:04.197 回答
3

使用 HTML 空格字符来生成空格:  

所以是这样的:

<?php
// pyramid height
$height = 5;

for($i=1;$i<=$height;$i++){

    for($t = 1;$t <= $height-$i;$t++)
    {
        echo "&nbsp;&nbsp;";
    }

    for($j=1;$j<=$i;$j++)
    {
        // use &nbsp; here to procude space after each asterix
        echo "*&nbsp;&nbsp;";
    }
echo "<br />";
}

?>
于 2012-11-06T12:14:07.360 回答
1

尝试这个

$height = 5;

$space = $height;
for($i = 1; $i <= $height; $i++) {
    echo str_repeat(' ', --$space);
    for($j=1;$j<=$i;$j++){
        if($j > 1) {
            echo ' ';
        }
        echo '*';
    }
    echo '<br />';
}
于 2012-11-06T12:22:01.363 回答
1
create_pyramid("*", 5);

function create_pyramid($string, $level) {
    echo "<pre>";
    $level = $level * 2;
    for($i = 1; $i <= $level; $i ++) {
        if (!($i % 2) && $i != 1)
            continue;   
        print str_pad(str_repeat($string, $i),($level - 1) * strlen($string), " " , STR_PAD_BOTH);
        print PHP_EOL;
    }
}

来自Baba上面发布的链接

于 2012-11-06T12:22:25.323 回答
0
$n = 5;
$i = 0;

for($i=1; $i<=$n; $i++){

    echo "<pre>";   
    echo str_repeat("&nbsp;", $n-$i);
    echo str_repeat("#&nbsp;", $i);
}
于 2014-04-14T13:42:24.607 回答