PDO结果中有以下数组。。。
[AF] => Array
(
[items] => Array
(
[0] => Array
(
[key] => 239
[nat] => AF
[entrydate] => 2013-08-27
)
[1] => Array
(
[key] => 240
[nat] => AF
[entrydate] => 2013-08-27
)
)
)
[AB] => Array
(
[items] => Array
(
[0] => Array
(
[key] => 239
[nat] => AB
[entrydate] => 2013-08-27
)
[1] => Array
(
[key] => 240
[nat] => AB
[entrydate] => 2013-08-27
)
)
)
[AC] => Array
(
[items] => Array
(
[0] => Array
(
[key] => 239
[nat] => AC
[entrydate] => 2013-08-27
)
[1] => Array
(
[key] => 240
[nat] => AC
[entrydate] => 2013-08-27
)
)
)
我想制作一张这样的桌子。。。
nat key Date
AF 239 2013-08-27
240 2013-08-27
AB 239 2013-08-27
240 2013-08-27
AC 239 2013-08-27
240 2013-08-27
问题是,当我需要在这段代码中获得上述结果时,却没有得到一些帮助。。。
<tr>
<th><?= _('nat')?></th>
<th><?= _('key')?></th>
<th><?= _('Date')?></th>
</tr>
<?php
foreach($array as $ent) {
?>
<tr>
<td><?=$ent[0]['nat']?></td>
<td><?=$ent[0]['key']?></td>
<td><?=$ent[0]['entrydate']?></td>
</tr>
<?php } ?>
您必须使用两个循环来迭代(首先您必须迭代主项,然后您必须迭代它们的子项。)您可以保留一个$first
变量,该变量描述我们是否是第一次进入该NAT值的子项,因此只打印一次NAT值:
<tbody>
<?php
foreach ($pdoResult as $natResult) {
$first = true;
foreach ($natResult['items'] as $natItem) {
$natKey = ($first ? $natItem['nat'] : '');
?>
<tr>
<td><?= $natKey ?></td>
<td><?= $natItem['key'] ?></td>
<td><?= $natItem['entrydate'] ?></td>
</tr>
<?php
$first = false;
}
}
?>
</tbody>
您有一个嵌套数组,因此需要嵌套循环:
foreach($array as $ent){
foreach($ent['items'] as $item){
echo $item['nat'] . " - " . $item['key'] . " - " . $item['entrydate'];
}
}