显示数组分组依据;nat”;表中的键


Show array group by "nat" key in table

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'];
    }
}