1

我有一个像这样的多维数组

Array
(
    [0] => Array
        (
            [name] => Fernando Alonso
            [time1] => 3.25
            [time2] => 3.25
            [time3] => 3.5
        )

    [1] => Array
        (
            [name] => Jenson Button
            [time1] => 34
            [time2] => 34
            [time3] => 41
        )
)

我想将数据回显到一个表中,目前我正在使用($result 是数组)

foreach ($result as $result) {
    echo "<tr>";
      foreach ($result as $driver) {
        echo "<td>$driver</td>";
      }
    echo "</tr>";
  }

这似乎有点不必要,有没有更好的方法来做到这一点?

4

4 回答 4

4

执行此类操作的“更好”方法是编写一个可重用的函数来绘制您的特定表结构。

没有(而且 IMO 不应该有)一个特定的函数来遍历多维数组。这样做的原因是理论上可能存在无限数量的嵌套结构,这会导致不可预测的结果。

该语言为您提供了足够的工具来遍历您提供的任何多维数组,只要您使用正确的代码结构对其进行备份。


在您的示例中,这将是遍历二维数组的完美方法。我唯一要改变的是不要为数组和foreach循环中的元素使用相同的名称:

foreach ($result as $result) {} // WRONG

而是使用不同的变量:

foreach ($results as $result) {} // RIGHT
于 2013-05-07T21:22:11.090 回答
3

你想这样做吗?

<table width="100%">
    <thead>
        <tr>
            <th>Name</th>
            <th>Time 1</th>
            <th>Time 2</th>
            <th>Time 3</th>
        </tr>
    </thead>
    <tbody>
    <?php foreach ($result as $row): ?>
        <tr>
            <td><?php echo $row['name'];?></td>
            <td><?php echo $row['time1'];?></td>
            <td><?php echo $row['time2'];?></td>
            <td><?php echo $row['time3'];?></td>
        </tr>
    <?php endforeach; ?>
    </tbody>
</table>
于 2013-05-07T21:24:31.960 回答
0

这是我经常使用的代码:

// Simple call :
echo '<pre>' . var_export($var, true) . '</pre>';

// Or as a function :
function var_str_repr($var, $as_html = true) {
    $repr = var_export($var, true);
    if ($as_html) {
        return '<pre>' . $repr . '</pre>';
    } else {
        return $repr;
    }
}

有关详细信息,请参阅var_export文档。

于 2013-05-07T21:27:27.373 回答
-1

使用php 的print_r函数。

$arr = ...;
echo "<pre>"; 
print_r($arr);
echo "</pre>";

这不会显示在表格中。我认为没有内置函数可以在表格中显示数组。您必须为此编写一个简单的函数。问题中提供的代码很简单,可以完成任务。

于 2013-05-07T21:20:42.967 回答