我有一個層次結構的一組對象。有頂「根」節點具有子節點,這反過來有子節點等我試圖使用嵌套集模型,其中每個每個節點的「側面」的編號來定義這個結構保存到數據庫該層次結構,以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)