2010-06-07 194 views
0

在我的数据库中,我有一个分层的扁平表,返回由PARENTID有序的数据,对象ID ASCPHP递归函数

我有一点得到这个递归函数正常工作的问题。我得到第一个父母>孩子>孩子,但在此之后,我什么也没有得到。

任何帮助,这是非常感谢。

这里是我的测试代码:

$objectArr = array(); 

$objectData = DAOFactory::getTemplateObjectsDAO()->queryByTemplateID(1); 

for($i = 0; $i < count($objectData); $i++) 
{ 
    if(empty($objectData[$i]->parentID)) 
    { 
     echo $objectData[$i]->objectID; 
     $objectArr[$i] = $objectData[$i]; 
     $objectArr[$i]->children = array(); 
     $objectArr[$i]->children = getChildren($objectData[$i]->objectID, $objectData); 
    } 
} 

function getChildren($objectID, $data) 
{ 
    $childArr = array(); 
    foreach($data as $object) 
    { 
     if($object->parentID == $objectID) 
     { 
      $childArr = $object; 
      $childArr->children = array(); 
      $childArr->children = getChildren($object->objectID, $data); 
     } 
    } 
    return $childArr; 
} 

new dBug($objectData); 

这是我得到的输出:

Fullsize Link

alt text

+0

你能否给我们'var_export'一些虚拟数据给我们。 – Gordon 2010-06-07 09:09:06

+0

您的getChildren()函数返回值(返回自己)不存储。 – nuqqsa 2010-06-07 14:54:57

回答

0

这里是我的数据的一小截面:

ObjectID  ParentID 
1 
3   1 
4   3 
10   3 
11   4 
12   4 
16   7 
15   11