PHP数组转树结构以及树结构转数组【PHP教程】

!
也想出现在这里? 联系我们
信息

PHP数组转树结构以及树结构转数组,第1张

概述PHP数组转树结构以及树结构转数组

推荐:《PHP视频教程》

public function index()    {        $data = [            [                'ID'=>1,                'parent_ID' => 0,                'name' => '第一个'            ],            [                'ID'=>2,                'parent_ID' => 0,                'name' => '第二个'            ],            [                'ID'=>3,                'parent_ID' => 1,                'name' => '第三个'            ],        ];        $r = $this->List_to_tree($data);        dump($r);    }

#数组转树结构#

function List_to_tree($List, $root = 0, $pk = 'ID', $pID = 'parent_ID', $child = 'children'){    // 创建Tree    $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 = 0;            if (isset($data[$pID])) {                $parentID = $data[$pID];            }            if ((string)$root == $parentID) {                $tree[] = &$List[$key];            } else {                if (isset($refer[$parentID])) {                    $parent = &$refer[$parentID];                    $parent[$child][] = &$List[$key];                }            }        }    }    return $tree;}

#树结构转数组#

function tree_to_List($tree = [], $children = 'children'){    if (empty($tree) || !is_array($tree)) {        return $tree;    }    $arrRes = [];    foreach ($tree as $k => $v) {        $arrTmp = $v;        unset($arrTmp[$children]);        $arrRes[] = $arrTmp;        if (!empty($v[$children])) {            $arrTmp = tree_to_List($v[$children]);            $arrRes = array_merge($arrRes, $arrTmp);        }    }    return $arrRes;}

总结

以上是内存溢出为你收集整理的PHP数组转树结构以及树结构转数组全部内容,希望文章能够帮你解决PHP数组转树结构以及树结构转数组所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

© 版权声明
THE END
喜欢就支持一下吧
点赞75 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容