Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从多维数组创建子类别层次结构_Php_Mysql_Tree_Hierarchy - Fatal编程技术网

Php 从多维数组创建子类别层次结构

Php 从多维数组创建子类别层次结构,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) {

我的数据库中有此表(我希望正确显示):

如何获得这种类型的结构? (我不包括第一位家长,2)

(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);    


(在)克尔克夫斯克,(在)尤金·里克:您的解决方案非常有效。有没有比数组更好的解决方案来快速获取子级的父级和父级的子级?例如:如果我想获取父级=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);

?>