You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP MySQL:如何按表分组打印二维数组?

按TABLENAME分组展示二维数组的解决方案

别急,这个分组展示的问题很好解决!核心思路是先把原数组按TABLENAME重新分组,变成以表名为键的嵌套数组,之后再循环输出就顺畅多了。我给你一步步拆解:

第一步:先将原数组按TABLENAME分组

首先我们需要把原始的二维数组,转换成以TABLENAME为键的新数组,这样每个表名对应的就是该表下的所有字段数据。用PHP实现的代码如下:

// 假设你的原始数组是$originalArray
$groupedArray = [];

foreach ($originalArray as $item) {
    $tableName = $item['TABLENAME'];
    
    // 如果当前表名还没在分组数组里,先初始化一个空数组
    if (!isset($groupedArray[$tableName])) {
        $groupedArray[$tableName] = [];
    }
    
    // 将当前数据项加入对应表名的数组中
    $groupedArray[$tableName][] = $item;
}

第二步:循环输出分组后的HTML表格

有了分组好的数组,接下来就可以轻松实现分组展示了——先输出每个表名作为分组标题,再输出对应表的字段表格:

// 输出分组后的HTML结构
echo '<div style="margin-bottom: 20px;">'; // 给每个分组加个间距,美观一点

foreach ($groupedArray as $tableName => $tableItems) {
    // 输出表名作为分组标题
    echo '<h4 style="margin: 10px 0;">' . htmlspecialchars($tableName) . '</h4>';
    
    // 开始构建表格
    echo '<table border="1" cellpadding="8" cellspacing="0">';
    
    // 输出表头(取第一个数据项的键作为表头)
    echo '<tr>';
    foreach (array_keys($tableItems[0]) as $header) {
        echo '<th>' . htmlspecialchars($header) . '</th>';
    }
    echo '</tr>';
    
    // 输出表格数据行
    foreach ($tableItems as $item) {
        echo '<tr>';
        foreach ($item as $value) {
            echo '<td>' . htmlspecialchars($value) . '</td>';
        }
        echo '</tr>';
    }
    
    echo '</table>';
}

echo '</div>';

小提示

  • 我在代码里用了htmlspecialchars()来转义输出内容,这是为了防止XSS攻击,处理用户输入或动态数据时一定要记得做这个操作!
  • 如果你的原始数组可能为空,或者某个表名下没有数据,建议在循环前加个判断,避免出现报错。

内容的提问来源于stack exchange,提问作者antoine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 10:53:14