从父子关系创建层次树结构
从父子关系构造层次树结构是编程中的常见任务。为了实现这一点,可以采用递归方法,有效地将数据组织成嵌套单元。
在 PHP 中,将一系列父子对转换为分层树需要两个关键函数:解析和打印。解析函数系统地遍历子父对以构建分层数据结构。接下来,打印函数将此结构转换为一系列嵌套的 HTML 无序列表,每个列表项代表一个子项。
作为示例,请考虑以下父子对:
Child : Parent H : G F : G G : D E : D A : E B : C C : E D : NULL
为了解析这些数据,我们定义了 parseTree 函数:
function parseTree($tree, $root = null) { $return = array(); foreach($tree as $child => $parent) { if($parent == $root) { unset($tree[$child]); $return[] = array( 'name' => $child, 'children' => parseTree($tree, $child) ); } } return empty($return) ? null : $return; }
接下来,我们定义 printTree 函数将解析后的层次结构转换为HTML 无序列表:
function printTree($tree) { if(!is_null($tree) && count($tree) > 0) { echo '<ul>'; foreach($tree as $node) { echo '<li>'.$node['name']; printTree($node['children']); echo '</li>'; } echo '</ul>'; } }
通过组合这两个函数,我们可以成功地将子父对转换为分层树结构。
以上是如何在 PHP 中根据父子关系构建层次树结构?的详细内容。更多信息请关注PHP中文网其他相关文章!