我的数据库中有这个表(我希望它能正确显示):
+++++++++++++++++++++++++++ | id_child |--| id_parent | +++++++++++++++++++++++++++ | 5 |--| 2 | | 6 |--| 2 | | 7 |--| 4 | | 8 |--| 4 | | 9 |--| 5 | | 10 |--| 5 | | 11 |--| 9 | | 12 |--| 9 | ---------------------------
我写了一个php递归函数,它从传递的父元素(在本例中为'2')创建一个多维数组。 所以,如果我放一个print_r,我会得到这个结果:
Array ( [5] => Array ( [9] => Array ( [11] => Array ( ) [12] => Array ( ) ) [10] => Array ( ) ) [6] => Array ( ) )
我如何获得这种类型的结构? (我排除了第一个父母,2)
(2) -5 --9 ----11 ----12 --10 -6
感谢。
答案 0 :(得分:1)
你需要另一个递归函数来迭代你的数组,如下所示:
function printCategories($categories, $level = 1) {
foreach ($categories as $cat => $subCats) {
echo str_repeat('-', $level) . $cat . "\n";
printCategories($subCats, $level+1);
}
}
printCategories($categories);
答案 1 :(得分:1)
<?php
function printtree($tree, $level) {
$prefix=str_repeat('-',$level);
foreach ($tree as $k=>$v) {
echo "$prefix$k<br>\n";
if (is_array($v)) if (sizeof($v)>0) printtree($v,$level+1);
}
}
$tree=array( 5=>array(9=>array(11=>array(), 12=>array()), 10=>array()), 6=>array());
printtree($tree,1);
?>