当前位置:首页 > PHP

PHP实现多级表格

2026-02-16 18:19:13PHP

PHP实现多级表格的方法

使用数组嵌套结构

通过多维数组存储多级表格数据,数组的层级对应表格的层级关系。例如:

$data = [
    ['id' => 1, 'name' => '一级1', 'children' => [
        ['id' => 11, 'name' => '二级1'],
        ['id' => 12, 'name' => '二级2']
    ]],
    ['id' => 2, 'name' => '一级2']
];

递归输出表格

编写递归函数处理多级表格的HTML输出:

function renderTable($items, $level = 0) {
    echo '<table border="1">';
    foreach ($items as $item) {
        echo '<tr>';
        echo '<td style="padding-left: '.($level*20).'px">'.$item['name'].'</td>';
        if (!empty($item['children'])) {
            echo '</tr>';
            renderTable($item['children'], $level+1);
        } else {
            echo '</tr>';
        }
    }
    echo '</table>';
}

数据库存储方案

对于数据库存储的多级数据,常见方案包括:

  • 邻接表模型:使用parent_id字段
  • 嵌套集模型:使用left和right值
  • 路径枚举:存储完整路径如"1/2/3"

邻接表查询示例:

// 查询所有数据并构建层级
$result = $pdo->query("SELECT id, name, parent_id FROM categories");
$items = [];
while ($row = $result->fetch()) {
    $items[$row['id']] = $row;
}

前端交互增强

结合JavaScript实现折叠展开功能:

<script>
function toggleRow(rowId) {
    document.querySelectorAll('.child-'+rowId).forEach(el => {
        el.style.display = el.style.display === 'none' ? '' : 'none';
    });
}
</script>

样式优化

通过CSS区分不同层级:

tr.level-0 { background-color: #f2f2f2; }
tr.level-1 { background-color: #e6e6e6; }
tr.level-2 { background-color: #d9d9d9; }

性能考虑

对于大型数据集:

PHP实现多级表格

  • 实现懒加载机制
  • 使用分页处理顶级项目
  • 考虑缓存生成的HTML

以上方法可根据实际需求组合使用,构建灵活高效的多级表格展示方案。

标签: 表格PHP
分享给朋友:

相关文章

vue实现表格树

vue实现表格树

Vue 实现表格树的方法 使用递归组件实现树形表格 在 Vue 中可以通过递归组件实现树形表格结构。定义一个组件,该组件可以调用自身来渲染子节点。 <template> <ta…

vue实现表格滑动

vue实现表格滑动

Vue实现表格滑动的方法 使用CSS overflow属性实现横向滑动 在表格外层容器设置overflow-x: auto,限制表格宽度超出时出现滚动条。这种方法适合简单场景,无需额外依赖库。 &l…

vue实现表格报表

vue实现表格报表

Vue 实现表格报表的方法 使用 Element UI 的表格组件 Element UI 提供了功能丰富的表格组件,适合快速实现报表功能。安装 Element UI 后,可以直接使用 el-table…

vue实现横向表格

vue实现横向表格

横向表格的实现方法 在Vue中实现横向表格,可以通过调整CSS样式和数据结构来实现。横向表格与常规表格的区别在于数据的展示方向,通常需要将表头和数据行进行转置。 使用CSS Flex布局 通过Fle…

vue循环实现表格

vue循环实现表格

Vue 循环实现表格的方法 在 Vue 中,可以通过 v-for 指令循环渲染表格数据。以下是一些常见的实现方式: 基础表格循环 使用 v-for 循环数组数据生成表格行: <templat…

vue实现表格计算

vue实现表格计算

Vue 表格计算实现方法 使用计算属性 在 Vue 中可以通过计算属性来实现表格数据的动态计算。计算属性会自动缓存结果,只有当依赖的数据发生变化时才会重新计算。 computed: { tota…