Tôi có một bộ các đối tượng trong một hierachy. Có một nút "root" đầu và có nút con, có nút con, vv .. Tôi đang cố gắng lưu cấu trúc này vào một DB bằng cách sử dụng mô hình tập lồng nhau, trong đó mỗi "bên" của mỗi nút được đánh số để xác định hệ thống phân cấp, như trong Managing Hierarchical Data in MySQL:PHP RecursiveIteratorIterator và bộ lồng nhau
alt text http://dev.mysql.com/tech-resources/articles/hierarchical-data-4.png
vấn đề của tôi là tính trái và giá trị đúng. Tôi thường sử dụng RecursiveIteratorIterator để lặp qua phân cấp, nhưng tôi không thể tìm ra cách tính số mà không dùng đến hàm đệ quy phân tích biến chỉ mục theo tham chiếu.
Bất kỳ ý tưởng nào?
Có lẽ không sử dụng, nhưng đây là (không chính xác) mã Tôi hiện có:
$iterator = new RecursiveIteratorIterator(
new Node_List(array($root)),
RecursiveIteratorIterator::SELF_FIRST);
$i = 0;
foreach ($iterator as $node) {
$node->left = ++$i;
$node->right = ++$i;
}
Như bạn thấy, mà sẽ cung cấp cho một cái gì đó như thế này:
Node
Node
Node
trái và giá trị phù hợp của:
Node (1, 2)
Node (3, 4)
Node (5, 6)
Khi cần có:
Node (1, 6)
Node (2, 3)
Node (4, 5)