TABLE `people`
+----+------------+-------+
| sn | name | upper |
+----+------------+-------+
| 1 | Clement | 0 |
| 2 | Jean | 1 |
| 3 | Annie | 1 |
| 4 | Yuan | 2 |
| 5 | Mei | 2 |
| 6 | Blue | 3 |
| 7 | Yang | 5 |
| 8 | Lorinda | 0 |
+----+------------+-------+
其结构如下:
Clement
Jean
Yuan
Mei
Yang
Annie
Blue
Lorinda
列upper
表示他/她自己的上层人物。
问题是:如何从MySQL中获取嵌套/多维数组?我以为可以使用循环来获取,但我无法自动获取所有的lower。数组可能如下所示:
Array
(
[1]=>Array
(
[self]=>Clement
[2]=>Array
(
[self]=>Jean
[4]=>Array
(
[self]=>Yuan
)
[5]=>Array
(
[self]=>Mei
[7]=>Array
(
[self]=>Yang
)
)
)
[3]=>Array
(
[self]=>Annie
[6]=>Array
(
[self]=>Blue
)
)
)
[8]=>Array
(
[self]=>Lorinda
)
)
既然我们不知道一个人有多少个"上层"的人,解决的办法应该是一个自动化的功能,建立一个完整的数组,而不仅仅是三维或四维的数组。换句话说,这个功能应该从一个上层的人深入到所有下层的人。
3条答案
按热度按时间3gtaxfhh1#
假设您的输入为:
使用references,您可以使用以下循环构建树:
演示:http://3v4l.org/vuVPu
vc6uscn92#
假设数据是这样的
这个递归函数可以工作:
像这样使用它:
mzillmmw3#
使用参考Map