如何在PHP中使用数字制作图形

如何在PHP中使用数字制作图形,php,mysql,Php,Mysql,我需要在表字段中打断一个数字,并将其转换为一个数组 输入表 +------+---------+ | id | number | +------+---------+ | 1 | 7 | | 2 | 8 | +------+---------+ 对于具有7个数字的id 1,我在php中需要的输出是: 1 2 3 4 5 6 7 2 3 4 5 6 3 4 5 4 如何做到这一点 fo

我需要在表字段中打断一个数字,并将其转换为一个数组

输入表

  +------+---------+
  | id   | number  |
  +------+---------+
  |  1   |   7     |
  |  2   |   8     |
  +------+---------+
对于具有7个数字的id 1,我在php中需要的输出是:

 1 2 3 4 5 6 7 
   2 3 4 5 6 
     3 4 5 
       4 
如何做到这一点

  for ($q=1; $q <= $obj->number  ; $q++) { 
         echo "$q";
        //This only turn 1, 2, 3, 4, 5, 6, 7
  }

试试这样的

$set = array( 7, 8 );
echo '<pre>';
foreach( $set as $number ){
  //assuming number is your INT
  $array = range( 1, $number );
   while( count( $array ) ){
       echo "\n";
       var_export( $array );
       //remove first element
       array_shift( $array );
       //remove last element
       array_pop($array);
   }
}

我将把它留给你来构建一个多维数组

如果只需要输出,则使用echo内爆“”,$array;代替var_导出。例如:

 1 2 3 4 5 6 7
   2 3 4 5 6
     3 4 5
       4

 1 2 3 4 5 6 7 8
   2 3 4 5 6 7
     3 4 5 6
       4 5

Stackoverflow不是一个为你做家庭作业的网站……哈哈,你怎么知道这是一个家庭作业呢。我只是想知道怎么做。我只是在提高我的技能。你能发布你目前掌握的代码吗?你有什么问题?告诉我们你到目前为止尝试了什么,以及你打算如何处理问题中的8这样的偶数。将INTEGER转换为数组-问题标题应该是如何使用PHP制作数字图形。哇,很长的答案。谢谢+1,因为它提高了我的技能一点也不长?输出很长,但这只是为了便于阅读。只需要5行“真实”代码。感谢PHP范围的想法:当然,使用范围可以为您节省一个循环。哇,编辑后的版本非常完整。非常感谢PHP大师!:*谢谢你。它提高了我的技能。谢谢我想说使用更详细的变量,所有的$I、$n、$j等等。。。可能会变得难以阅读。我会说你不可能是认真的。为什么不呢?您还在每行的末尾留下一个“空白”,但谁会担心呢。总之,这是一个自下而上的答案,而我的答案是自上而下的。我认为这类问题应该有一个尽可能简单的答案。这是一堂算法课,不是菜谱。
array (
  0 => 1,
  1 => 2,
  2 => 3,
  3 => 4,
  4 => 5,
  5 => 6,
  6 => 7,
)
array (
  0 => 2,
  1 => 3,
  2 => 4,
  3 => 5,
  4 => 6,
)
array (
  0 => 3,
  1 => 4,
  2 => 5,
)
array (
  0 => 4,
)
array (
  0 => 1,
  1 => 2,
  2 => 3,
  3 => 4,
  4 => 5,
  5 => 6,
  6 => 7,
  7 => 8,
)
array (
  0 => 2,
  1 => 3,
  2 => 4,
  3 => 5,
  4 => 6,
  5 => 7,
)
array (
  0 => 3,
  1 => 4,
  2 => 5,
  3 => 6,
)
array (
  0 => 4,
  1 => 5,
)
$set = array( 7, 8 );
echo '<div style="text-align:center">';
foreach( $set as $number ){
      //assuming number is your INT
      $array = range( 1, $number );
       while( count( $array ) ){
           echo implode(' ', $array );
           //remove first element
           array_shift($array);
           //remove last element
           array_pop($array); 
           echo '<br>';
       }
       echo '<br>';
 }
 echo '</div>';
 1 2 3 4 5 6 7
   2 3 4 5 6
     3 4 5
       4

 1 2 3 4 5 6 7 8
   2 3 4 5 6 7
     3 4 5 6
       4 5