在php中打印星形模式没有得到预期的输出

时间:2016-10-10 13:19:53

标签: php for-loop

我已经尝试过这个代码,我得到的输出就在这里

<?php
    for($i=1;$i<=5;$i++){
        for($j=5-$i;$j>=1;$j--){
            echo "&nbsp;";
            echo "&nbsp;";
        }
        for($k=1;$k<=$i;$k++){
            echo $i;
        }
        echo "<br/>";
    }
     ?>
      1
     22
    333
   4444
  55555

但我想要这样的输出,请告诉我哪里错了

    1
   12
  123 
 1234
12345

2 个答案:

答案 0 :(得分:0)

只需将echo $ i更改为echo $ k,

for($k=1;$k<=$i;$k++){
    echo $k;
}

答案 1 :(得分:0)

由于您使用HTML,您可能希望将此逻辑包装到一个可以让您选择要显示的行数的函数中。您可以根据CSS调整它以满足您的需求:

function numberTriangle($endNumber, $align_text = 'right') {
    $max    = intval($endNumber);
    $align  = strval($align_text);
    $align  = ( strlen(trim($align)) > 0 ) ? $align : 'right';

    echo "<div style='text-align : $align; display : inline-block'>";

    if( $max > 0 ) {
        for( $i = 1; $i < $max + 1; $i++ ) {
            for( $j = 1; $j < $i + 1; $j++ ) {
                echo $j;
            }

            echo '<br />';
        }
    }

    echo '</div>';
}

numberTriangle(5);

// Will display :
/*
    1
   12
  123
 1234
12345
*/

由于这个功能,您不必再添加手动空间,这样更干净(并且可以节省您的头像!)。