php 生成树状图


 

public function tree($array, $pid=0)
    {
        $tree = array();
        foreach ($array as $key => $value) {
            if ($value['parent_id'] == $pid) {
                $value['child'] = $this->tree($array, $value['id']);
                if (!$value['child']) {
                    unset($value['child']);
                }
                $tree[] = $value;
            }
        }
        return $tree;
    }



 

function getChild($data, $id = 0)
    {
        $child = [];
        foreach ($data as $key => $datum) {
            if ($datum['parent_id'] == $id) {
                $child[$datum['id']] = $datum;               

                unset($data[$key]);
                $child[$datum['id']]['child'] = $this->getChild($data, $datum['id']);
            }
        }
        return $child;
    }
    public function Index($request){
        $DictionaryIndex = new DictionaryIndex();
        $result = $DictionaryIndex->get()->toArray();
        $data= $this->getChild($result);
        return $data;
    }

3、

public function getTree($types, $key = 0)
    {
        $tree = [];
        $i = 0;
        if (!is_array($types)) $types = $types->toArray();
        if (isset($types[$key])) {
            foreach ($types[$key] as $pid => $type) {
                if (isset($type['mcode'])) $type['value'] = $type['mcode'];
                if (isset($type['mname'])) $type['label'] = $type['mname'];
                $tree[$i] = $type;
                if (isset($types[$type['mcode']])) {
                    $children = $this->getTree($types, $type['mcode']);
                    $tree[$i]['children'] = $children;
                }
                $i++;
            }
        }
        return $tree;
    }

4

 static function array_tree(array $data, $parent_id = 0, $level = 0)
    {
        static $_tmp = array();

        foreach ($data as $key => $item) {
            if ($item['parent_id'] == $parent_id) {
                foreach ($data as $k => $value) {
                    if ($value['parent_id'] == $item['id']) {  //如果子级权限的parend_id等于顶级权限的id就说明这个权限是顶级权限的子级权限
                        $item['children'][] = $value;    //然后把子权限放在一个新的数组里
                    }
                }

                $_tmp[] = $item;
            }
        }

        return $_tmp;
    }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
生成流程图是通过将代码逻辑可视化的方式来展示程序运行流程。在PHP中,可以使用各种方法和工具来生成流程图。 一种常见的方法是使用Graphviz库。Graphviz是一个开源工具,可以根据给定的描述文件生成各种类型的图表,包括流程图。在PHP中,可以使用Graphviz的PHP扩展或者通过shell命令来生成流程图。 首先,需要编写PHP代码来描述程序的逻辑。可以使用条件语句、循环语句和函数等来组织代码。代码中的每个逻辑块都可以被表示为一个节点,节点之间的连接关系表示代码的执行流程。 接下来,需要将代码逻辑转换为Graphviz的描述语言。描述语言通常是一个文本文件,它描述了节点之间的连接关系和节点的样式等信息。可以使用PHP生成描述语言,从而将代码逻辑转换为流程图。 然后,可以通过调用Graphviz库来生成流程图。可以使用PHP扩展或者通过shell命令来调用Graphviz。调用库时,将描述语言作为输入参数,库将根据描述语言生成对应的流程图文件或图像。 最后,生成的流程图文件或图像可以保存到指定的位置,或者直接在浏览器中展示。这样就可以通过生成的流程图来分析和理解代码的执行流程,从而更好地进行程序的维护和开发工作。 总之,通过使用Graphviz等工具和方法,可以很方便地实现自动生成流程图的功能。这不仅可以提高代码的可读性和可维护性,还可以提升程序开发过程中的效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值