我有一个层次结构的一组对象。有顶“根”节点具有子节点,这反过来有子节点等我试图使用嵌套集模型,其中每个每个节点的“侧面”的编号来定义这个结构保存到数据库该层次结构,以Managing Hierarchical Data in MySQL:PHP RecursiveIteratorIterator和嵌套集合
alt text http://dev.mysql.com/tech-resources/articles/hierarchical-data-4.png
我的问题是计算左边和右边的值。我通常使用RecursiveIteratorIterator遍历层次结构,但是我无法计算出数字,而无需通过引用来解析索引变量的递归函数。
任何想法?
这可能是没有用的,但是这是(不正确)的代码,我目前有:
$iterator = new RecursiveIteratorIterator(
new Node_List(array($root)),
RecursiveIteratorIterator::SELF_FIRST);
$i = 0;
foreach ($iterator as $node) {
$node->left = ++$i;
$node->right = ++$i;
}
正如你所看到的,将给予这样的:
Node
Node
Node
左,权值:
Node (1, 2)
Node (3, 4)
Node (5, 6)
当他们应该是:
Node (1, 6)
Node (2, 3)
Node (4, 5)