【发布时间】:2010-06-07 18:31:51
【问题描述】:
在我的数据库中,我有一个分层平面表,它返回按 ParentID、ObjectID asc 排序的数据
我在让这个递归函数正常工作时遇到了一点问题。我得到了第一个 Parent>Child>Child 但之后我什么都没有。
非常感谢任何帮助。
这是我的测试代码:
$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);
这是我得到的输出:
【问题讨论】:
-
请您
var_export给我们一些虚拟数据。 -
你的 getChildren() 函数返回值(返回给自己)没有被存储。