有很多不同的方法可以解决这个问题,所以为什么不找点乐子呢。
如果您必须使用 for 循环
不知道你为什么会,除非是为了学校作业:
for($i=0;$i<count($data);$i++) {
echo('<tr>');
echo('<td>' . $data[$i][0] . '</td>');
echo('<td>' . $data[$i][1] . '</td>');
echo('<td>' . $data[$i][2] . '</td>');
echo('</tr>');
}
但是直接访问 ID 有点愚蠢,让我们在行中使用另一个 for 循环:
for($i=0;$i<count($data);$i++) {
echo('<tr>');
for($j=0;$j<count($data[$i]);$j++) {
echo('<td>' . $data[$i][$j] . '</td>');
}
echo('</tr>');
}
用同样无聊的 foreach 循环替换它:
<table>
<?php foreach($items as $row) {
echo('<tr>');
foreach($row as $cell) {
echo('<td>' . $cell . '</td>');
}
echo('</tr>');
} ?>
</table>
为什么不内爆数组:
<table>
<?php foreach($items as $row) {
echo('<tr>');
echo('<td>');
echo(implode('</td><td>', $row);
echo('</td>');
echo('</tr>');
} ?>
</table>
把它混合起来,拧紧前叉,然后去散步;并一路爆破东西:
<?php
function print_row(&$item) {
echo('<tr>');
echo('<td>');
echo(implode('</td><td>', $item);
echo('</td>');
echo('</tr>');
}
?>
<table>
<?php array_walk($data, 'print_row');?>
</table>
双走... OMG
是的,现在看起来有点傻,但是当你扩大表格并且事情变得更复杂时,事情会更好地分解和模块化:
<?php
function print_row(&$item) {
echo('<tr>');
array_walk($item, 'print_cell');
echo('</tr>');
}
function print_cell(&$item) {
echo('<td>');
echo($item);
echo('</td>');
}
?>
<table>
<?php array_walk($data, 'print_row');?>
</table>