在php中从这个数组结构创建表


Creating table out from this array structure in php

我在从以下数组创建表时遇到问题:

http://pastebin.com/DXFjfhHJ

我从这个开始:

<table style="width: 100%; text-align: center;">
    <tr>
        <td>Time</td>
        <td>Aktivitet</td>
        <td>Duration</td>
        <td>Metabolisation</td>
   </tr>

然后我做了:

foreach{$training as $time => $metabolisation}{
?>
                <tr style="text-align: left;">
                    <td><?php echo $time; ?></td>
                    <td>Activity name</td>
                    <td>Duration</td>
                    <td><?php echo $metabolisation; ?></td>
                </tr>
<?php
 }

这几乎有效。。它显示正确的$time(03:00等(,但在$metabolization中没有显示任何内容。我不知道如何调用Activity,它应该是数组的"name"变量。与持续时间相同,应该是数组的"持续时间">

我该怎么做?

你在pastebin中使用的结构与foreach不兼容。你真的需要像这样在数组结构中看得更深。

<?php foreach( $training as $time => $data ): ?>
  <tr style="text-align: left;">
    <td><?php echo $time; ?></td>
    <td>Total <?php echo $data['entries'][0]['name']; ?></td>
    <td>Duration <?php echo $data['entries'][0]['duration']; ?></td>
    <td><?php echo $data['entries'][0]['metabolisation']; ?></td>
  </tr>
<?php endforeach; ?>
foreach($training as $time => $metabolisation){
  foreach($metabolisation['entries'] as $entry) {
?>
<tr style="text-align: left;">
  <td><?php echo $time; ?></td>
  <td><?php echo $entry['name']; ?></td>
  <td><?php echo $entry['duartion']; ?></td>
  <td><?php echo $entry['metabolisation']; ?></td>
</tr>
<?php
  }
}
?>

它可能没有以适当的形式输出数据,但你已经知道如何访问它了