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

时间:2011-09-25 11:21:49

标签: php arrays foreach

我无法从这个数组中创建一个表:

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等),但在$ metabolisation中没有任何内容。而且我不知道如何调用Activity,它应该是数组“name”变量。与持续时间相同,它应该是数组“持续时间”

我该怎么做?

2 个答案:

答案 0 :(得分:0)

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

它可能不会以适当的形式输出数据,但您可以了解如何访问它。

答案 1 :(得分:0)

你在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; ?>