相关疑难解决方法(0)

将一系列父子关系转换为分层树?

我有一大堆的名字 - parentname对,我想转成少数heirarchical树形结构成为可能.例如,这些可能是配对:

Child : Parent
    H : G
    F : G
    G : D
    E : D
    A : E
    B : C
    C : E
    D : NULL
Run Code Online (Sandbox Code Playgroud)

需要转化为(a)层次结构树:

D
??? E
?   ??? A
?   ?   ??? B
?   ??? C   
??? G
    ??? F
    ??? H
Run Code Online (Sandbox Code Playgroud)

我想要的最终结果是一组嵌套的<ul>元素,每个元素都<li>包含孩子的名字.

有在配对没有不一致(孩子是它自己的父母,父母是孩子的孩子,等等),所以一堆优化大概可以做.

在PHP中,我如何从包含child => parent对的数组转到一组嵌套<ul>s?

我有一种感觉,涉及到递归,但我还没有完全清醒地思考它.

php tree recursion

97
推荐指数
5
解决办法
6万
查看次数

外行人的术语是使用PHP的递归函数

任何人都可以用PHP(不使用Fibonacci)在外行语言和使用示例中向我解释一个递归函数吗?我正在看一个例子,但斐波那契完全失去了我!

提前谢谢;-)您还经常在Web开发中使用它们吗?

php recursion function

72
推荐指数
6
解决办法
11万
查看次数

在PHP中使用平面数组构建树

我环顾互联网,并没有找到我正在寻找的东西.我有一个扁平数组,每个元素都包含'id'和'parent_id'.每个元素只有一个父元素,但可能有多个子元素.如果parent_id = 0,则将其视为根级别项.我想把我的扁平阵列变成一棵树.我发现的其他样本只将元素复制到父元素,但原始元素仍然存在.

编辑

从单独的XML文件中读取起始数组的每个元素.如果父文件没有父文件,则文件本身将具有'0'作为parent_id的值.键实际上是字符串.

我很抱歉早先的混乱.希望这更清楚:

/编辑

我的起始阵列:

Array
(
    [_319_] => Array
        (
            [id] => 0
            [parent_id] => 0
        )

    [_320_] => Array
        (
            [id] => _320_
            [parent_id] => 0
        )

    [_321_] => Array
        (
            [id] => _321_
            [parent_id] => _320_
        )

    [_322_] => Array
        (
            [id] => _322_
            [parent_id] => _321_
        )

    [_323_] => Array
        (
            [id] => _323_
            [parent_id] => 0
        )

    [_324_] => Array
        (
            [id] => _324_
            [parent_id] => _323_
        )

    [_325_] => Array
        ( …

php arrays tree flat

36
推荐指数
3
解决办法
5万
查看次数

标签 统计

php ×3

recursion ×2

tree ×2

arrays ×1

flat ×1

function ×1