【发布时间】:2017-09-17 16:10:59
【问题描述】:
我有一个包含所有用户的多维数组,如下所示。
Array
(
[0] => Array
(
[username] => santoshe62
[sponsor] => santoshe61
)
[1] => Array
(
[username] => santoshe63
[sponsor] => santoshe62
)
[2] => Array
(
[username] => santoshe65
[sponsor] => santoshe64
)
[3] => Array
(
[username] => santoshe67
[sponsor] => santoshe66
)
.............................
)
我想要这个数组中的一个数组,其中包含给定用户的分层数据,如下所示。
Array
(
[0] => Array
(
[username] => santoshe62
[sponsor] => santoshe61
)
[1] => Array
(
[username] => santoshe63
[sponsor] => santoshe62
)
)
我试过了
function parseTree($datas, $parent = 0){
$tree = array();
for($i=0, $ni=count($datas); $i < $ni; $i++){
if($datas[$i]['sponsor'] == $parent){
$tree[] = $datas[$i];
parseTree($datas, $datas[$i]['username']);
}
}
return $tree;
}
谁能帮我找出我的代码有什么问题?另外请建议,我可以直接从 MySQL 中选择这种层次结构吗?现在我正在从 DB 中选择所有结果。
【问题讨论】:
-
我想要这个数组中包含分层数据的数组是什么意思?第二个多维数组背后的逻辑是什么?
-
表示包含所有孩子、孙子、曾孙等的数组......对于任何给定的用户名,例如用户名“santoshe61”的第二个给定数组
标签: php mysql arrays multidimensional-array hierarchical-data