Ich habe eine Reihe von Objekten in einer Hierarchie. Es gibt einen obersten "root" -Knoten, der untergeordnete Knoten hat, die wiederum untergeordnete Knoten usw. haben. Ich versuche, diese Struktur unter Verwendung des geschachtelten Mengenmodells in einem DB zu speichern, wobei jede "Seite" jedes Knotens zur Definition nummeriert wird die Hierarchie, wie in Managing Hierarchical Data in MySQL:PHP RecursiveIteratorIterator und verschachtelte Sätze
alt text http://dev.mysql.com/tech-resources/articles/hierarchical-data-4.png
Mein Problem der linken und rechten Werte berechnet wird. Normalerweise verwende ich RecursiveIteratorIterator, um über die Hierarchie zu iterieren, aber ich kann nicht herausfinden, wie man die Zahlen berechnet, ohne auf eine rekursive Funktion zurückzugreifen, die eine Indexvariable als Referenz analysiert.
Irgendwelche Ideen?
Es ist wahrscheinlich nichts, aber dies ist die (falsche) Code, den ich derzeit haben:
$iterator = new RecursiveIteratorIterator(
new Node_List(array($root)),
RecursiveIteratorIterator::SELF_FIRST);
$i = 0;
foreach ($iterator as $node) {
$node->left = ++$i;
$node->right = ++$i;
}
Wie Sie sehen können, dass so etwas wie dieses geben würde:
Node
Node
Node
Linke und richtige Werte von:
Node (1, 2)
Node (3, 4)
Node (5, 6)
Wenn sie sein sollten:
Node (1, 6)
Node (2, 3)
Node (4, 5)