PHP:生成动态数字金字塔

时间:2014-01-11 13:00:29

标签: php

这是一个正常的金字塔水平块动态,如hor = 5

$k = 10;
$last = 2;
    for($i=0;$i<=$last;$i++){

        for($t = 1;$t <= $last-$i;$t++)
        {
            echo "&nbsp;&nbsp;";
        }
        for($j=1;$j<=$i+$i;$j++)
        {
            $k--;
            echo "$k&nbsp;&nbsp;";
        }
    echo "<br>";

但是我需要这个:

enter image description here

有可能吗? 任何帮助赞赏。 谢谢。

1 个答案:

答案 0 :(得分:6)

这是一个更为整洁的方法:

首先,生成金字塔数组:

$width = 5;
$pyramid = array();
$number = 0;
while($width > 0) {
    $row = array();
    for( $i=0; $i<$width; $i++) {
        $row[] = ++$number;
    }
    $pyramid[] = $row;
    $width -= 2;
}

这将从底部到顶部为您提供数组中的金字塔。所以只需将其翻转过来:

$pyramid = array_reverse($pyramid);

现在渲染它:

echo '<div style="text-align:center">';
foreach($pyramid as $row) {
    echo implode(" ",$row).'<br />';
}
echo '</div>';