-1

目前我有一个 PHP 3 级数组。如何以表格形式显示它?使用 print_r 我可以显示完整的数组,但我需要美化它以表格形式显示。是否可以?

要插入的数组示例如另一篇文章所示:PHP foreach with Nested Array?

4

2 回答 2

1

那么......数组的每一层都应该是一个嵌入的表?

<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>

..并不断重复模式

于 2013-01-08T07:28:41.010 回答
1

有很多方法可以做到这一点,因为您没有为输出格式提供模板,所以更是如此……
让我们假设$e输入数组的每个元素$src代表表中的一行。
那么 $e[0] 是字符串元素 ( one, two, three) 并且 $e[1] 是对应的数组1,2,3,4,5,67,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>

另见:http ://docs.php.net/htmlspecialchars

于 2013-01-08T07:34:54.690 回答