如何从字符串或数组放入表?

时间:2012-01-25 04:48:55

标签: php html-table

我可以将数据输出到字符串或数组,如下所示。我知道列数和行数。例如,对于此数据,$numofrow为6,最大$numofcol为5。

现在我不确定的是我怎么能把它们放到桌子上。我应该使用阵列吗?如果是这样,怎么样?问题是某些行的数据或td数量少于其他行。

//as an array $mycriteria
array(6) {
  [0]=>
  string(64) "Criteron A-1,Criteron A-2,Criteron A-3,Criteron A-4,Criteron A-5"
  [1]=>
  string(64) "Criteron B-1,Criteron B-2,Criteron B-3,Criteron B-4,Criteron B-5"
  [2]=>
  string(51) "Criteron C-1,Criteron C-2,Criteron C-3,Criteron C-4"
  [3]=>
  string(38) "Criteron D-1,Criteron D-2,Criteron D-3"
  [4]=>
  string(64) "Criteron E-1,Criteron E-2,Criteron E-3,Criteron E-4,Criteron E-5"
  [5]=>
  string(51) "Criteron F-1,Criteron F-2,Criteron F-3,Criteron F-4"
}

//as a string $mycriteria
mycriteria: string(337) "Criteron A-1,Criteron A-2,Criteron A-3,Criteron A-4,Criteron A-5
Criteron B-1,Criteron B-2,Criteron B-3,Criteron B-4,Criteron B-5
Criteron C-1,Criteron C-2,Criteron C-3,Criteron C-4
Criteron D-1,Criteron D-2,Criteron D-3
Criteron E-1,Criteron E-2,Criteron E-3,Criteron E-4,Criteron E-5
Criteron F-1,Criteron F-2,Criteron F-3,Criteron F-4"

更新

我真的需要有空的td,如下所示,因为我正在使用边框线。没有空的td,它看起来很难看。

我正在寻找的是以下HTML。

<table>
<tr>
<td>Criteron A-1</td><td>Criteron A-2</td><td>Criteron A-3</td><td>Criteron A-4</td><td>Criteron A-5</td>
</tr>
...
<tr>
<td>Criteron D-1</td><td>Criteron D-2</td><td>Criteron D-3</td><td></td><td></td>
</tr>
...

</table>

4 个答案:

答案 0 :(得分:2)

我假设您想要HTML格式的表格?如果是这样,你会看到类似的东西:

echo "<table><tr><td>".str_replace(Array("\n",","),Array("</td></tr></tr><td>","</td><td>"),$mycritera)."</td></tr></table>";

使用您的字符串形式。

答案 1 :(得分:1)

由于你想要完整的行,这是另一个答案:

array_walk($my_array,function(&$a) {$a = explode(",",$a);});
echo "<table>";
for( $y=0; $y<$numofrow; $y++) {
    echo "<tr>";
    for( $x=0; $x<$numofcol; $x++) {
        echo "<td>".$my_array[$y][$x]."</td>";
    }
    echo "</tr>";
}
echo "</table>";

必需的PHP 5.3。如果你有较低的替换第一行:

array_walk($my_array,create_function('&$a','$a = explode(",",$a);'));

答案 2 :(得分:0)

你的意思是这样的:


<table>
<?php
$maxTd = 5;
foreach($arr as $key => $val) {
     $subArr = explode(",", $val);
     $count = count($subArr);
?>
    <tr>
        <?php foreach($subArr as $val1) { ?>
          <td>
              <?php echo $val1; ?>
          </td>
        <?php } ?>
        <?php 
          if($count < $maxTd) {
              for($i = 0; $i <($maxTd - $count); $i++) {
                  echo "<td></td>";
              }
          }
          ?>
    </tr>
<?php
}
?>
</table>

答案 3 :(得分:0)

表格显示不需要行计数或列数。

    echo "<table>";
    foreach($my_array as $row){
        echo "<tr>";
        $columns=explode(",",$row);
        foreach($columns as $column){
            echo "<td>".$column."</td>";
        }
        echo "</tr>";
    }
    echo "</table>";