我有一个来自数据库查询的字段数组。
我想找到基于$ office_id字段中唯一值创建多个表的最佳解决方案。
所以基本上,我尝试过使用foreach循环,存储office_id并在每次循环时检查它是否唯一,然后关闭最后一个表html,启动一个新表html等。
我讨厌这个解决方案,因为这意味着数组必须按office_id排序,而且非常难看。
任何人都可以使用更干净,更智能的代码建议更好的方法。我需要对阵列进行某种转换吗?是否有更好的方法来提取独特的office_id字段?
我还想将office_id用作每个表的标题,以便输出看起来类似于以下内容:
office_id One
-----------------------------------
settle | price | Lister | date
-----------------------------------
| | |
office_id Two
-----------------------------------
settle | price | Lister | date
-----------------------------------
| | |
这就是我的(丑陋),当我输入时,我意识到我错过了关闭标签:
<?php $thisOffice = ""; ?>
<?php foreach ($fees as $fee): ?>
<?php if($thisOffice !== $fee->office_id) : ?>
<table class="table table-striped table-condensed">
<tr>
<th>Settlement</th>
<th>Office</th>
<th>Price</th>
<th>Lister</th>
<th>Sold</th>
</tr>
<?php endif; ?>
<tr>
<td> <?= $fee->settle_date ?></td>
<td> <?= $fee->office_id ?></td>
<td> <?= $fee->price ?></td>
<td> <?= $fee->lister ?></td>
<td> <?= $fee->sale_date ?></td>
</tr>
<?php $thisOffice = $fee->office_id; ?>
<?php endforeach; ?>
答案 0 :(得分:1)
如果将阵列分成三个维度,它将使您的生活更轻松:
$offices[$id][] = $fee;
这样你可以使用:
foreach ($offices as $id => $office) {
foreach ($office as $fee) {
// Build table
}
}