Php 转换html表

Php 转换html表,php,html,Php,Html,您好,我有一个按字母顺序排列的电影名称数组,我想创建一个html表,我想动态执行此操作,因此我执行了以下操作: echo "<div align=\"center\"><table>"; $i=0; foreach ($results as $entry){ //If first in row of 4, open row if($i == 0) { echo "<tr>\n"; } //print

您好,我有一个按字母顺序排列的电影名称数组,我想创建一个html表,我想动态执行此操作,因此我执行了以下操作:

echo "<div align=\"center\"><table>";   
$i=0;
foreach ($results as $entry){   
    //If first in row of 4, open row
    if($i == 0) {
        echo "<tr>\n";
    }
    //print a cell
    echo "\t<td>" . $entry . "</td>\n";
    i++;
    //if last cell in row of 4, close row
    if($i == 4) {
         echo "</tr>\n";
        $i=0;
    }
}

if($i < 4)  {
    while($i < 4) {
        echo "\t<td></td>\n";
        $i++;
    }
    echo "</tr>\n";
}
echo "</table></div>";
我如何构建一张类似以下的桌子:

entry0 | entry3 | entry6
entry1 | entry4 | entry7
entry2 | entry5 | entry8
?

我猜我必须重新组织我的$results数组,并且仍然以同样的方式构建表

我对php非常陌生(一个星期!),所以我不确定该怎么做

谢谢你的帮助(我没有测试,但应该可以)


这个怎么样:(我没有测试,但应该可以)


$results=数组('e1','e2','e3','e4','e5','e6','e7');
$NUM_列=3;
$numRows=计数($results)/$NUM_列;
如果(计数($results)%$NUM_列>0){
$numRows+=1;
}
回声“;
$i=0;
对于($i=0;$i<$numRows;$i++){
回音“\n”;
$index=$i;
对于($j=0;$j<$NUM_列;$j++){
//打印单元格
$entry='';
如果($index
这是经过测试的,包括垂直排序项目。我想写一个描述,但我刚接到一个电话,不得不走了。如果您有任何问题,我会在~1小时内回答。(抱歉!)

$results=array('e1','e2','e3','e4','e5','e6','e7'); $NUM_列=3; $numRows=计数($results)/$NUM_列; 如果(计数($results)%$NUM_列>0){ $numRows+=1; } 回声“; $i=0; 对于($i=0;$i<$numRows;$i++){ 回音“\n”; $index=$i; 对于($j=0;$j<$NUM_列;$j++){ //打印单元格 $entry=''; 如果($index

这是经过测试的,包括垂直排序项目。我想写一个描述,但我刚接到一个电话,不得不走了。如果您有任何问题,我会在~1小时内回答。(抱歉!)

这与我已有的功能相同,只是简单了一点。我希望表格的结构有所不同,看我的例子啊,是的。我需要更改$I的开始计数。我修改了它,并且在添加新行后也修改了重置if$I。这仍然不是垂直排序,但另一个答案是。不管怎样谢谢你不用担心,很抱歉我错过了你想要垂直排序,否则我会把它包括在内。小心点。这和我已经有的一样,只是简单一点。我希望表格的结构有所不同,看我的例子啊,是的。我需要更改$I的开始计数。我修改了它,并且在添加新行后也修改了重置if$I。这仍然不是垂直排序,但另一个答案是。不管怎样谢谢你不用担心,很抱歉我错过了你想要垂直排序,否则我会把它包括在内。小心点。谢谢这很好用,我现在就来看看并试着理解它:)诀窍在于,因为行不再包含顺序元素,所以可以循环行而不是项。因此,您可以计算循环之前的行数,并使用它来计算每行中包含的三个项目。感谢这项工作非常完美,我现在将对其进行检查并尝试理解:)诀窍在于,因为行不再包含顺序元素,所以您可以循环行而不是项目。因此,您可以计算循环之前的行数,并使用它来计算每行中有哪三项。
entry0 | entry3 | entry6
entry1 | entry4 | entry7
entry2 | entry5 | entry8
<?php
$i = 1;
$max = 3; // this is the number of columns to display

echo "<div align=\"center\"><table><tr>"; 

foreach ($results as $entry) {
    echo "<td style=\"text-align: center;\">";
    echo $entry;
    echo "</td>";

    $i++;

    if ($i == ($max)) {
        echo '</tr><tr>';

        $i = 1;
    }
}

echo "</tr>\n";
echo "</table></div>";
?>
$results = array( 'e1', 'e2', 'e3', 'e4', 'e5', 'e6','e7' );

$NUM_COLUMNS = 3;

$numRows = count($results) / $NUM_COLUMNS;
if (count($results) % $NUM_COLUMNS > 0) {
  $numRows += 1;
}

echo "<div align=\"center\"><table>";
$i=0;
for ($i = 0; $i < $numRows; $i++) {
  echo "<tr>\n";

  $index = $i;
  for ($j = 0; $j < $NUM_COLUMNS; $j++) {
    //print a cell
    $entry = '';
    if ($index < count($results)) {
      $entry = $results[$index];
    }
    echo "\t<td>" . $entry . "</td>\n";

    $index += $numRows;
  }

  echo "</tr>\n";
}

echo "</table></div>";