如何在 PHP/MySQL 中可视化分层数据(类别)?

DDD
发布: 2024-10-23 18:22:35
原创
522 人浏览过

How to Visualize Hierarchical Data (Categories) in PHP/MySQL?

PHP/MySQL 中的类别层次结构

处理分层数据(例如类别)时,以结构化方式表示它们至关重要。一种常见的方法是使用邻接列表模型,其中每一行代表一个类别,并有一个字段指示其父类别。

获取层次结构

使用 PHP,您可以可以从 MySQL 检索类别数据并一次性构建层次结构。下面的代码受到 Nate Weiner 的“One Pass Parent-Child Array Structure”的启发:

<code class="php">$refs = [];
$list = [];

$sql = "SELECT category_id, parent_id, category_name FROM categories ORDER BY category_name";

foreach ($result as $row) {
    $ref = &$refs[$row['category_id']];

    $ref['parent_id'] = $row['parent_id'];
    $ref['category_name'] = $row['category_name'];

    if ($row['parent_id'] == 0) {
        $list[$row['category_id']] = &$ref;
    } else {
        $refs[$row['parent_id']]['children'][$row['category_id']] = &$ref;
    }
}</code>
登录后复制

此循环填充两个数组:$refs 包含对每个类别的引用,而 $list 包含顶级类别(没有父级)。

创建层次结构表示

要创建层次结构的可视表示,您可以使用递归函数生成嵌套 HTML 列表。考虑以下代码:

<code class="php">function toUL(array $array) {
    $html = '<ul>' . PHP_EOL;

    foreach ($array as $value) {
        $html .= '<li>' . $value['category_name'];
        if (!empty($value['children'])) {
            $html .= toUL($value['children']);
        }
        $html .= '</li>' . PHP_EOL;
    }

    $html .= '</ul>' . PHP_EOL;

    return $html;
}</code>
登录后复制

此函数采用类别数组作为输入,并递归地构建嵌套的 HTML 列表。然后可以输出生成的 HTML 以显示类别层次结构。

以上是如何在 PHP/MySQL 中可视化分层数据(类别)?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!