PHP与FOR循环

PHP与FOR循环,php,html,for-loop,Php,Html,For Loop,我试图使用for循环创建一个动态返回如下内容的表:注意td内容是如何安排的 <table> <tr> <td>1</td> <td>3</td> <td>5</td> <td>7</td> <td>9</td> </tr> <tr> <td>2</td> <td>

我试图使用for循环创建一个动态返回如下内容的表:注意td内容是如何安排的

<table>
 <tr>
  <td>1</td>
  <td>3</td>
  <td>5</td>
  <td>7</td>
  <td>9</td>
 </tr>
 <tr>
  <td>2</td>
  <td>4</td>
  <td>6</td>
  <td>8</td>
  <td>10</td>
 </tr>
</table>

1.
3.
5.
7.
9
2.
4.
6.
8.
10
到目前为止,我所尝试的其中一个方法是

$row=2;
$col=20;
$x=0;
echo '<table>';
for($i=0;$i<$row;$i++){
   echo '<tr>';
     for($k=0;$k<$col;$k++)
     {
        echo '<td>'.echo $x+=1.'</td>';
     }
   echo '</tr>';

}
$row=2;
$col=20;
$x=0;
回声';
对于($i=0;$i
$total\u count=10;
$total_行=2;
$table=array();
//构建表数组
对于($i=1;$i
$total\u count=10;
$total_行=2;
$table=array();
//构建表数组

对于($i=1;$i来说,这并不像人们想象的那么复杂

在当前所在的任何行上启动内部循环,每次添加2

<?php
$rows=2;
$cols=10;
?>


<table>
<?php for($i=1;$i<=$rows;$i++): ?>
    <tr>
    <?php for($k=$i;$k<$cols;$k+=2): ?>
        <td><?php echo $k ?></td>
    <?php endfor; ?>
    </tr>
<?php endfor; ?>
</table>

不过我可能会使用range和foreach

<?php
$rows=2;
$cols=10;
?>

<table>
<?php foreach( range( 1, $rows ) as $row ): ?>
    <tr>
    <?php foreach( range( $row, $cols, 2 ) as $col ): ?>
        <td><?php echo $col ?></td>
    <?php endforeach; ?>
    </tr>
<?php endforeach; ?>
</table>

这并不像人们想象的那么复杂

在当前所在的任何行上启动内部循环,每次添加2

<?php
$rows=2;
$cols=10;
?>


<table>
<?php for($i=1;$i<=$rows;$i++): ?>
    <tr>
    <?php for($k=$i;$k<$cols;$k+=2): ?>
        <td><?php echo $k ?></td>
    <?php endfor; ?>
    </tr>
<?php endfor; ?>
</table>

不过我可能会使用range和foreach

<?php
$rows=2;
$cols=10;
?>

<table>
<?php foreach( range( 1, $rows ) as $row ): ?>
    <tr>
    <?php foreach( range( $row, $cols, 2 ) as $col ): ?>
        <td><?php echo $col ?></td>
    <?php endforeach; ?>
    </tr>
<?php endforeach; ?>
</table>

此方法将拆分数据本身

function array_chunk_vertical($array = null,$cols = 3, $pad = array(null))
{
  if (is_array($array) == true and !empty($array))
  {
    $rows = ceil(count($array)/$cols);
    $array = array_chunk($array,$rows);
    if (count($array) < $cols)
    {
      $array = array_pad($array,$cols,$pad);
    }
    foreach($array as $key => $value)
    {
      $array[$key] = array_pad($value,$rows,null);
    }
    foreach($array as $key => $value)
    {
      foreach($value as $sub_key => $sub_value)
      {
        $output[$sub_key][$key] = $sub_value;
      }
    }
    return $output;
  }
  return $array;
}

$data = array(1,2,3,4,5,6,7,8,9,10,11);

echo '<table border="1">';
foreach(array_chunk_vertical($data,ceil(count($data)/2)) as $row)
{
  echo '<tr>';
  foreach($row as $col)
  {
    echo '<td>' . $col . '</td>';
  }
  echo '</tr>';
}
echo '</table>';
function array\u chunk\u vertical($array=null,$cols=3,$pad=array(null))
{
if(is_array($array)==true且!为空($array))
{
$rows=ceil(计数($array)/$cols);
$array=array\u chunk($array,$rows);
if(计数($array)<$cols)
{
$array=array\u pad($array,$cols,$pad);
}
foreach($key=>$value的数组)
{
$array[$key]=array_pad($value,$rows,null);
}
foreach($key=>$value的数组)
{
foreach($sub_key=>$sub_value)
{
$output[$sub_key][$key]=$sub_值;
}
}
返回$output;
}
返回$array;
}
$data=数组(1,2,3,4,5,6,7,8,9,10,11);
回声';
foreach(数组\块\垂直($data,ceil(计数($data)/2))作为$row)
{
回声';
foreach(行作为$col)
{
回声“.$col.”;
}
回声';
}
回声';

此方法将拆分数据本身

function array_chunk_vertical($array = null,$cols = 3, $pad = array(null))
{
  if (is_array($array) == true and !empty($array))
  {
    $rows = ceil(count($array)/$cols);
    $array = array_chunk($array,$rows);
    if (count($array) < $cols)
    {
      $array = array_pad($array,$cols,$pad);
    }
    foreach($array as $key => $value)
    {
      $array[$key] = array_pad($value,$rows,null);
    }
    foreach($array as $key => $value)
    {
      foreach($value as $sub_key => $sub_value)
      {
        $output[$sub_key][$key] = $sub_value;
      }
    }
    return $output;
  }
  return $array;
}

$data = array(1,2,3,4,5,6,7,8,9,10,11);

echo '<table border="1">';
foreach(array_chunk_vertical($data,ceil(count($data)/2)) as $row)
{
  echo '<tr>';
  foreach($row as $col)
  {
    echo '<td>' . $col . '</td>';
  }
  echo '</tr>';
}
echo '</table>';
function array\u chunk\u vertical($array=null,$cols=3,$pad=array(null))
{
if(is_array($array)==true且!为空($array))
{
$rows=ceil(计数($array)/$cols);
$array=array\u chunk($array,$rows);
if(计数($array)<$cols)
{
$array=array\u pad($array,$cols,$pad);
}
foreach($key=>$value的数组)
{
$array[$key]=array_pad($value,$rows,null);
}
foreach($key=>$value的数组)
{
foreach($sub_key=>$sub_value)
{
$output[$sub_key][$key]=$sub_值;
}
}
返回$output;
}
返回$array;
}
$data=数组(1,2,3,4,5,6,7,8,9,10,11);
回声';
foreach(数组\块\垂直($data,ceil(计数($data)/2))作为$row)
{
回声';
foreach(行作为$col)
{
回声“.$col.”;
}
回声';
}
回声';

谢谢您的更正。在发布时尝试格式化,因此出现了打字错误。很抱歉,您只是想要一个带有数字的表格,还是这些数字是您希望数据排序的一个示例?例如,您是否正在追踪此循环的盗版使用?我想在表格中显示内容。他们有索引,不会采用这种格式。简而言之我的表号应该以这种方式排列是因为你知道你想要的列数还是行数?谢谢你的更正。发帖时试图格式化,因此出现了打字错误。很抱歉,你只是想要一个有数字的表,还是数字是你想要数据排序的一个例子?例如,你是chasi吗是否非法使用此循环?我想在表中显示内容。它们有索引,不会采用任何格式。简言之,我的表编号应该以这种方式排列。您是否知道所需的列数或行数?这里不需要数组。比这简单得多。不需要数组这里。比这简单多了。这取决于我们知道的是什么,盖伦。如果预先确定有5列,那太好了。但是如果只是“我想按两行的列大顺序数到N”,然后你必须做一点数学。我认为我的解决方案非常简单。这取决于已知的内容,Galen。如果预先确定有5列,很好。但是如果只是“我想在两行中按列的主要顺序数到N”,那么你必须做一点数学。我认为我的解决方案非常简单。