【发布时间】:2016-10-05 20:32:43
【问题描述】:
我正在开发一种家谱类型的应用程序,它允许将后代添加到可以深入和广泛的父母之下。我有完美构建的数据库,这不是这里的问题。我遇到的问题是在 HTML 中生成表格。
示例数据结构:
Array
(
[1] => Array
(
[name] => Igor
[children] => 2
[siblings] => 0
[level] => 1
[descendants] => Array
(
[7] => Array
(
[name] => Rapid
[children] => 2
[siblings] => 1
[level] => 2
[descendants] => Array
(
[8] => Array
(
[name] => Hodor
[children] => 1
[siblings] => 1
[level] => 3
[descendants] => Array
(
[9] => Array
(
[name] => Hodor II
[children] => 1
[siblings] => 0
[level] => 4
[descendants] => Array
(
[20] => Array
(
[name] => Hodor III
[children] => 0
[siblings] => 0
[level] => 5
)
)
)
)
)
[14] => Array
(
[name] => Rapid II
[children] => 0
[siblings] => 1
[level] => 3
)
)
)
[2] => Array
(
[name] => Thunder
[children] => 0
[siblings] => 1
[level] => 2
)
)
)
)
数字数组键是人的 ID。
水平表的期望输出:
垂直:
我不确定在考虑行跨度和列跨度的同时递归循环数据的最佳方法是什么。我怎样才能以任何深度有效地做到这一点?
【问题讨论】:
-
你会说 NOSQL 吗?
-
看我的回答,我只是使用小递归函数来迭代数组和一些 css 技巧并完成:)