用PHP打印数字三角形图案

时间:2017-01-31 08:22:56

标签: php for-loop

我想使用for循环使用PHP打印此模式:

10 9 8 7 6
10 9 8 7
10 9 8
10 9
10

现在,我正在使用它:

for ($i=10; $i>5; $i--)
{   
   for ($j=$i; $j>5; $j--)
    {   
       echo $j.' ';

    }

    echo "</br>";    
} 

正在打印这个:

10 9 8 7 6 
9 8 7 6 
8 7 6 
7 6 
6 

5 个答案:

答案 0 :(得分:3)

for ($i=5; $i>0; $i--) {   
    for ($j=10; $j>10-$i; $j--) {   
        echo "{$j} ";

    }
    echo "<br/>";    
}

答案 1 :(得分:1)

这将是您的代码的即时修复,以便于使用CLI:

<?php
define('STOP_NUMBER', 10);
define('START_NUMBER', 5);

for($i=START_NUMBER; $i<=STOP_NUMBER; $i++) {
  for($j=STOP_NUMBER; $j>=$i; $j--) {
    echo $j . ' ';
  }
  echo "\n";
}

这与输出中的HTML标记相同:

<?php
define('STOP_NUMBER', 10);
define('START_NUMBER', 5);

for($i=START_NUMBER; $i<=STOP_NUMBER; $i++) {
  for($j=STOP_NUMBER; $j>=$i; $j--) {
    echo $j . '&nbsp';
  }
  echo "<br />\n";
}

答案 2 :(得分:0)

解决方案1:将数字收集到一个数组,并在最后收集echo

$results = array(); // set an empty array;
$from = 10; // set from 
$to = 6; // set to
$spaceChr = '&nbsp;'; // set space char 
$LFChr = "<br />"; // set Line Feed char
foreach(range($from,$to) as $k=>$c){ 
    foreach(range($from,$to+$k) as $v){
        $results[$k][] =$v;
    }
    $results[$k] = implode($spaceChr, $results[$k]); 
}
$results = implode($LFChr, $results);
echo $results;

OR SOLUTION 2:echo循环期间的每个数字:

$from = 10;
$to = 6;

foreach(range($from,$to) as $k=>$c){
    foreach(range($from,$to+$k) as $v){
        echo $v . '&nbsp;';
    }

    echo "<br />";
}

答案 3 :(得分:0)

$ cat test.php
<?php

/* Start and End */
$start = 10;
$end   = 5;

/* Field Sep */
$field_sep = "&nbsp;";

/* Row Sep */
$row_sep   = "<br/>\n";

/* Rows */
for($j=1; $j<=5; $j++)
{
    /* Columns */   
    for($i=$start; $i>=$end+$j; $i--){
        echo ($i==$start?$i:$field_sep.$i);
    }
        echo $row_sep;
}
?>

<强>输出

$ php test.php
10&nbsp;9&nbsp;8&nbsp;7&nbsp;6<br/>
10&nbsp;9&nbsp;8&nbsp;7<br/>
10&nbsp;9&nbsp;8<br/>
10&nbsp;9<br/>
10<br/>

。通过

/* Field Sep */
$field_sep = " ";

/* Row Sep */
$row_sep   = "\n";

<强>输出

$ php test.php
10 9 8 7 6
10 9 8 7
10 9 8
10 9
10

<强>流程

Flowchart

答案 4 :(得分:0)

试试这个

<?php

    for ($i=5; $i>0; $i--) {   
        for ($j=10; $j>10-$i; $j--) {   

            echo $j.'&nbsp;';

        }
        echo "<br/>";    
    }


    ?>

输出

10 9 8 7 6 
10 9 8 7 
10 9 8 
10 9 
10