树形结构的生成与恢复:以‘children‘作为子级树形结构的key值PHP版

生成树:

function listToTree($list, $pk = 'fid', $pid = 'pid', $child = 'children', $root = 0) {

$tree = array();

if (is_array($list)) {

    $refer = array();

    foreach ($list as $key => $data) {

        $refer[ $data[ $pk ] ] = &$list[ $key ];

    }

    foreach ($list as $key => $data) {

        // 判断是否存在parent

        $parentId = $data[ $pid ];

    if ($root == $parentId) {

         $tree[] = &$list[ $key ];

    } else {

         if (isset($refer[$parentId])) {

            $parent = &$refer[ $parentId ];

            $parent[ $child ][ $data[ $pk ] ] = &$list[ $key ];

            $parent[ $child ] = array_values($parent[ $child ]);

                }

            }

        }

    }

    return $tree;

}

树形结构解除:

function treetoarray($array){

    $arr = array();

    if(is_array($array) && !empty($array)){

        foreach($array as $w) {

            //有子集,继续分类

            if(isset($w['children']) && !empty($w['children'])) {

                $t = $w['children'];

                unset($w['children']);

                $arr[] = $w;

                if(is_array($t)){

                    $arr = array_merge($arr,tree2array($t));

                }

            } else {

                unset($w['children']);

                $arr[] = $w;

            }

        }

        return $arr;

    }else{

        return false;

    }

}

相关文章

显卡天梯图2024最新版,显卡是电脑进行图形处理的重要设备,...
初始化电脑时出现问题怎么办,可以使用win系统的安装介质,连...
todesk远程开机怎么设置,两台电脑要在同一局域网内,然后需...
油猴谷歌插件怎么安装,可以通过谷歌应用商店进行安装,需要...
虚拟内存这个名词想必很多人都听说过,我们在使用电脑的时候...