PHP分层数组-父级和子级
我将PHP和mySQL与Idiorm结合使用。那可能不相关。
- 这是父母与子女之间的关系。
- 0是根父级。
- 示例:根父级0有孩子33,孩子33有孩子27,孩子27有孩子71。
如果需要解决此问题,可以更改此数组结构。
array ( 33 =>
array (
0 => '27',
1 => '41',
),
27 =>
array (
0 => '64',
1 => '71',
),
0 =>
array (
0 => '28',
1 => '29',
2 => '33',
),
)
像这样,但作为一个数组…
0 => 28
29
33
27 =>
64
71
41
- 深度未知,可以无限。我尝试了foreach,但可能不是这样。
- 一些递归功能?
- 一些while循环?
我尝试了以上两种,只是一团糟。这很聪明。
回答:
@deceze的建议奏效了。但是,输入数组需要更改一个参数,像这样…
$rows = array( array(
'id' => 33,
'parent_id' => 0,
),
array(
'id' => 34,
'parent_id' => 0,
),
array(
'id' => 27,
'parent_id' => 33,
),
array(
'id' => 17,
'parent_id' => 27,
),
);
从https://stackoverflow.com/a/8587437/476:
function buildTree(array $elements, $parentId = 0) { $branch = array();
foreach ($elements as $element) {
if ($element['parent_id'] == $parentId) {
$children = buildTree($elements, $element['id']);
if ($children) {
$element['children'] = $children;
}
$branch[] = $element;
}
}
return $branch;
}
$tree = buildTree($rows);
print_r( $tree );
以上是 PHP分层数组-父级和子级 的全部内容, 来源链接: utcz.com/qa/424031.html