我正在寻找一个带有所有需要函数的PHP(带有MYSQL)嵌套集类。 例如:
createLeftNode,createRightNode,createRootNode,createSubNode,deleteNode和 moveTree 。不仅有1个左边,1个右边,1个向上和1个向下,还有一个树的一部分在另一棵树中。
谢谢!
答案 0 :(得分:7)
查看Doctrine的nested behavior
答案 1 :(得分:4)
如果您正在处理分层数据,那么嵌套好的集合就很棒。仅使用php数组实现它要复杂得多,特别是如果你想将这些信息保存在数据库中。
你可以试试这个。从未使用它,但经过短暂的代码筛选后,它看起来几乎完整。
答案 2 :(得分:2)
有一些新的东西:http://www.sideralis.org/baobab/
陈旧而过时的答案。该库不再受支持。
我使用 nstrees库“buggzzy”发布(http://www.edutech.ch/contribution/nstrees/index.php)作为一个项目,我必须让用户可以创建和编辑他公司的组织结构图。< / p>
我非常喜欢“修改过的Preorder Tree Traversal ”算法,但在我看来,nstree库很慢。在我的情况下,我必须递归迭代树。也许这是我脚本中的其他内容很慢。
无论如何我还在寻找替代方案,我最近检查了PEAR网站,并在那里找到了一个树库:http://pear.php.net/package/Tree
PEAR图书馆似乎不像NSTREE那样全面,但我认为它可能更具性能。
这篇文章对我提出了很多帮助:Storing Hierarchical Data in a Database
答案 3 :(得分:1)
看看这个图书馆https://github.com/fpietka/Zend-Nested-Set: 实现与Zend Framework一起使用的嵌套集模型
答案 4 :(得分:0)
它早就应该了,但我更新了https://github.com/fpietka/Zend-Nested-Set(即使是单元测试)。
答案 5 :(得分:0)
我编写了一个使用Doctrine DBAL作为数据库抽象层的嵌套集实现。因为我们将它与Drupal一起使用,它还会跟踪revision_id
。