PHP - 从MySQL数据创建嵌套数组

jef*_*890 3 php mysql arrays recursion nested

我有一些数据存储在表中,如下所示:

id  parent_id  name
1   0          Entry 1
2   0          Entry 2
3   0          Entry 3
4   1          Child of entry 1
Run Code Online (Sandbox Code Playgroud)

我想把它变成一个嵌套数组,如下所示:

array(
    array(
        'id' => 1,
        'parent_id' => 0,
        'name' => 'Entry 1',
        'children' => array(...)
    ),
    ...
);
Run Code Online (Sandbox Code Playgroud)

理想情况下,它需要支持无限量的嵌套(有孩子的孩子).我的表是否设置为支持这个,如果是这样,我将如何使用表中的数据生成这种数组?如果没有,我应该如何设置我的桌子?

Ada*_*old 6

这里有一个关于在mysql中管理分层数据的非常好的描述: 管理分层数据 这是构建嵌套数组的另一个很好的例子: 构建嵌套数组

您可以考虑使用嵌套集模型.如果你要查询mutch,那么它比你现在使用的邻接模型更好.

希望有所帮助.