Php 从多维数组创建子类别层次结构
我的数据库中有此表(我希望正确显示): 如何获得这种类型的结构? (我不包括第一位家长,2) (2) -5 --9 ----11 ----12 --10 -6Php 从多维数组创建子类别层次结构,php,mysql,tree,hierarchy,Php,Mysql,Tree,Hierarchy,我的数据库中有此表(我希望正确显示): 如何获得这种类型的结构? (我不包括第一位家长,2) (2) -5 --9 ----11 ----12 --10 -6 谢谢。您需要另一个递归函数来迭代数组,如下所示: function printCategories($categories, $level = 1) { foreach ($categories as $cat => $subCats) {
谢谢。您需要另一个递归函数来迭代数组,如下所示:
function printCategories($categories, $level = 1) {
foreach ($categories as $cat => $subCats) {
echo str_repeat('-', $level) . $cat . "\n";
printCategories($subCats, $level+1);
}
}
printCategories($categories);
(在)克尔克夫斯克,(在)尤金·里克:您的解决方案非常有效。有没有比数组更好的解决方案来快速获取子级的父级和父级的子级?例如:如果我想获取父级=9(11和12)的子级,有没有简单的方法?我认为我的数组将被更改,请在ID=9处启动递归函数,并从中生成新数组
Array ( [5] => Array ( [9] => Array ( [11] => Array ( ) [12] => Array ( ) ) [10] => Array ( ) ) [6] => Array ( ) )
(2)
-5
--9
----11
----12
--10
-6
function printCategories($categories, $level = 1) {
foreach ($categories as $cat => $subCats) {
echo str_repeat('-', $level) . $cat . "\n";
printCategories($subCats, $level+1);
}
}
printCategories($categories);
<?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);
?>