PHP Foreach内部foreach显示表行中的数据

时间:2017-11-13 15:18:42

标签: php foreach html-table

如何在foreach函数内的tablerow中显示数据?议程变量工作正常,行变量是产生问题的那个,我需要它在标签

<?php
$agenda = $days = json_decode(get_field( "field_uc_content_json" ));
unset($agenda[0]); ?>



<table class="table">
    <thead>
        <tr>
          <th> Day </th>
          <th>Description</th>
          <th>Hours</th>
        </tr>
    </thead>
<tbody>
   <?php foreach($agenda as $column) { ?>
   <tr>
    <td><?php echo $column[0]; ?></td>
    <td><?php
    $rows = explode( "\n", $column[1]);
    foreach ($rows as $row) { ?>
    <tr> <?php echo $row; ?> </tr>
    <?php    } ?>
   </td>
</tbody>
</table>

第二个foreach

vardump议程

enter image description here

vardump

enter image description here

3 个答案:

答案 0 :(得分:3)

这样做:

<tbody>
<?php foreach($agenda as $column):
    $rows = explode("\n", $column[1]);?>
    <tr>
        <td rowspan="<?php count($rows) + 1?>"><?php $column[0];?></td>
    </tr>

    <?php foreach($rows as $row): ?>
        <tr>
            <td><?php echo $row ;?></td>
            <td><?php echo $row ;?></td>
        </tr>
    <?php endforeach;

endforeach; ?>
</tbody>

正如我们(和icecub)在聊天室中讨论的那样。

祝你好运。

答案 1 :(得分:2)

我认为现在工作正常。我测试了它。

<table class="table">
    <thead>
        <tr style="background: #8da80c;">
          <th> Day </th>
          <th>Description</th>
          <th>Hours</th>
        </tr>
    </thead>
<tbody>
   <?php foreach($agenda as $column) { ?>
   <tr style="background: #e0e545;">
    <td style="padding: 14px;"><?php echo $column[0]; ?></td>
    <td style="padding: 14px;"><?php echo $column[1]; ?></td>
     <td style="padding: 14px;"><?php echo $column[2]; ?></td>
   </tr>
   <?php } ?>
</tbody>
</table>

我测试了这些值

  <pre>
<?php
$agenda = array (array("montag","Lorem ipsum dolor sit amet","08:00"),array("montag","Lorem ipsum dolor sit amet","08:00"),array("montag","Lorem ipsum dolor sit amet","08:00"));

print_r($agenda);
?>
     </pre>

答案 2 :(得分:1)

因为你变了

$agenda = $days = json_decode(get_field( "field_uc_content_json" ));
unset($agenda[0]); ?>

它是一个对象而你不像数组那样使用,你需要在爆炸中像对象一样管理,如下所示:

$rows = explode( "\n", $column->1);