使用 MySQL 和 PHP 检索分层数据
从数据库中检索分层数据可能具有挑战性,特别是在使用邻接列表数据模型时。本问题旨在通过创建一个返回指定父节点下的所有子节点、孙子节点等的函数来解决此问题。
构建分层树
首先,提供的 PHP 代码从 MySQL 表中检索数据并将其存储在关联数组中。邻接列表数据模型通过将父子关系存储在单列(即parent_id)中来表示层次结构。
为了将此数据转换为树结构,buildtree() 函数递归地遍历数组,将每个节点的 ID 及其数据,并创建一个以子节点为元素的嵌套数组。
获取父节点下的节点
fetch_recursive() 函数旨在检索所有子节点在指定的父项下。它从指定的父 ID 开始遍历树结构。如果节点的父 ID 与指定的父 ID 匹配,则会将该节点的数据添加到结果数组中,并继续探索子节点。
示例用法
演示功能,以下 PHP 代码构建一棵树并检索特定 ID 下的子节点:
<?php $data = [ ['id' => 1, 'name' => 'Electronics', 'parent_id' => 0], ['id' => 2, 'name' => 'Televisions', 'parent_id' => 1], ['id' => 3, 'name' => 'Portable Electronics', 'parent_id' => 1], // ... additional data ]; $tree = buildtree($data); $child_nodes = fetch_recursive($tree, 3); foreach ($child_nodes as $node) { echo $node['name'] . '<br>'; }
以上是如何使用 PHP 和 MySQL 检索分层数据结构中的所有子节点?的详细内容。更多信息请关注PHP中文网其他相关文章!