2010-06-07 116 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