本讨论重点是从数据库中检索分层数据结构并将其转换为多维数组单个查询。目标是获取表示数据的树结构的数组。
为了从数据库中提取树结构,通常使用闭包表。闭包表记录了层次结构中祖先和后代之间的关系,可以高效查询后代。
给定节点的主键,可以使用 SQL 查询其后代使用以下步骤:
然后按以下方式处理 SQL 结果:
在 PHP 中,使用 Zend Framework,以下代码演示了该过程:
// Get taxonomy table instance $tax = new Taxonomy(); // Fetch tree starting at Rodentia (id 180130) to a depth of 2 $tree = $tax->fetchTree(180130, 2); // Dump the array var_export($tree->toArrayDeep());
输出是一个多维数组,表示数据的树形结构,如:
array ( 'tsn' => '180130', 'completename' => 'Rodentia', '_parent' => '179925', '_children' => [ // Child rows... ], )
以上是如何将数据库结果转换为多维数组来表示分层数据结构?的详细内容。更多信息请关注PHP中文网其他相关文章!