目前我有一个 PHP 3 级数组。如何以表格形式显示它?使用 print_r 我可以显示完整的数组,但我需要美化它以表格形式显示。是否可以?
要插入的数组示例如另一篇文章所示:PHP foreach with Nested Array?
目前我有一个 PHP 3 级数组。如何以表格形式显示它?使用 print_r 我可以显示完整的数组,但我需要美化它以表格形式显示。是否可以?
要插入的数组示例如另一篇文章所示:PHP foreach with Nested Array?
那么......数组的每一层都应该是一个嵌入的表?
<table>
<?php // FIRST LEVEL
foreach ($myArray as $first_level): ?>
<tr>
<td>The header of the first level, here's some data <?php echo $first_level['some_data']; ?></td>
</tr>
<tr>
<td>
<table>
<?php // SECOND LEVEL
foreach($first_level['second_level'] as $second_level): ?>
<tr>
<td><?php echo $second_level['some_data']; ?></td>
</tr>
<?php endforeach; ?>
</table>
</td>
</tr>
<?php endforeach; ?>
</table>
..并不断重复模式
有很多方法可以做到这一点,因为您没有为输出格式提供模板,所以更是如此……
让我们假设$e
输入数组的每个元素$src
代表表中的一行。
那么 $e[0] 是字符串元素 ( one
, two
, three
) 并且 $e[1] 是对应的数组1,2,3
,4,5,6
或7,8,9
。
让我们将 $e[0] 放入<th>...</th>
元素中。
foreach( $src as $e ) {
echo '<th>', $e[0], '</th>';
}
然后将每个元素包装在 $e[1] in 中<td>....</td>
。
foreach( $src as $e ) {
echo '<th>', $e[0], '</th>';
foreach($e[1] as $v) {
echo '<td>', $v, '</td>';
}
}
现在把它包装成另一个<tr>...</tr>
,你就完成了
foreach( $src as $e ) {
echo '<tr>';
echo '<th>', $e[0], '</th>';
foreach($e[1] as $v) {
echo '<td>', $v, '</td>';
}
echo "</tr>\r\n";
}
同样的事情有点短(见http://docs.php.net/join)
<?php
$src = getData();
foreach( $src as $e ) {
echo '<tr><th>', $e[0], '</th><td>', join('</td><td>', $e[1]), "</td></tr>\n";
}
function getData() {
return array(
array( 'one', array(1,2,3) ),
array( 'two', array(4,5,6) ),
array( 'three', array(7,8,9) )
);
}
输出是
<tr><th>one</th><td>1</td><td>2</td><td>3</td></tr>
<tr><th>two</th><td>4</td><td>5</td><td>6</td></tr>
<tr><th>three</th><td>7</td><td>8</td><td>9</td></tr>