【问题标题】:PHP Recursive FunctionPHP 递归函数
【发布时间】: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);

这是我得到的输出:

Fullsize Link

【问题讨论】:

  • 请您var_export 给我们一些虚拟数据。
  • 你的 getChildren() 函数返回值(返回给自己)没有被存储。

标签: php recursion


【解决方案1】:

这是我数据的一小部分:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-21
    • 2011-01-29
    • 2011-12-02
    • 2019-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多