鸿 网 互 联 www.68idc.cn

当前位置 : 服务器租用 > 网站制作教程 > php > >

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

来源:互联网 作者:佚名 时间:2021-12-04 14:43
推荐:《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); } #数组转树结构#

推荐:《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);
    }

Laravel

#数组转树结构#

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数组转树结构以及树结构转数组的详细内容,更多请关注鸿网互联其它相关文章!

上一篇:浅谈win10下安装php seaslog扩展的方法
下一篇:没有了
网友评论
<