PHP中如何用foreach循环遍历JSON接口数据并渲染为表格
实现方案
步骤1:确认返回数组结构
首先运行以下代码打印完整的关联数组结构,明确存储执行记录的子节点位置和各字段的键名:
echo '<pre>'; // 格式化打印完整数组结构,方便查看层级和键名 print_r($vysledky); echo '</pre>';
ceecr.cz接口返回的执行记录通常存放在最外层数组下的result、data或items子节点中,打印后即可找到对应存放多条记录的数组。
步骤2:输出规整HTML表格
假设你通过步骤1确认所有执行记录存放在$vysledky['result']['items']中,先将其赋值给$records变量,再用以下代码输出表格:
<?php // 替换为你实际查到的记录列表所在的数组路径 $records = $vysledky['result']['items'] ?? []; ?> <!-- 表格样式可根据需求自行调整 --> <table border="1" cellpadding="10" cellspacing="0" style="border-collapse: collapse; width: 100%; font-size: 14px;"> <thead> <tr style="background-color: #f0f0f0; text-align: left;"> <!-- 表头可根据实际需要展示的字段修改 --> <th>执行案号</th> <th>债务人姓名</th> <th>身份证件号/出生日期</th> <th>执行法院</th> <th>立案时间</th> <th>执行标的金额</th> <th>案件当前状态</th> </tr> </thead> <tbody> <?php if (!empty($records) && is_array($records)): ?> <?php foreach ($records as $item): ?> <tr> <!-- 下方$item后的键名替换为步骤1中打印出的实际键名即可 --> <td><?php echo htmlspecialchars($item['case_number'] ?? '-'); ?></td> <td><?php echo htmlspecialchars($item['full_name'] ?? '-'); ?></td> <td><?php echo htmlspecialchars($item['birth_date'] ?? '-'); ?></td> <td><?php echo htmlspecialchars($item['court_name'] ?? '-'); ?></td> <td><?php echo htmlspecialchars($item['filing_date'] ?? '-'); ?></td> <td><?php echo htmlspecialchars($item['execution_amount'] ?? '-'); ?></td> <td><?php echo htmlspecialchars($item['status'] ?? '-'); ?></td> </tr> <?php endforeach; ?> <?php else: ?> <tr> <td colspan="7" style="text-align: center; padding: 15px;">未查询到匹配的执行公示记录</td> </tr> <?php endif; ?> </tbody> </table>
注意事项
- 输出字段前添加
htmlspecialchars()做转义处理,避免特殊字符导致页面结构混乱或出现XSS安全风险 - 用
?? '-'的空合并运算符处理可能存在的字段缺失情况,避免PHP抛出未定义索引的报错 - 可根据实际需求调整表格的样式、表头字段和对应输出的数组键名
内容的提问来源于stack exchange,提问作者Michael Grznár
相关产品推荐
相关产品推荐

