• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

php中构建树状图

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
   /**
     *  指定根层级的树状图
     * @param array $list 初始数组
     * @param int $root 最上级一条数据的id
     * @param string $pk 每一条数据的id
     * @param string $pid 上下级关系的pid
     * @param string $child 自定义下级关系的字段
     * @return  array $tree  树状图数组
     */

    function generateTree($list, $root = 0, $pk = 'id', $pid = 'pid', $child = '_child')
    {
        $tree = array();
        $packData = array();
        foreach ($list as $data) {
            $packData[$data[$pk]] = $data;
        }
        foreach ($packData as $key => $val) {
            if ($val[$pid] == $root) {
//代表跟节点, 重点一
                $tree[] = &$packData[$key];
            } else {
                //找到其父类,重点二
                $packData[$val[$pid]][$child][] = &$packData[$key];
            }
        }
        return $tree;
    }

 获取无限极的层级,

public static function getTree($data, $pid, $level = 0)
    {
        $list = array();
        foreach ($data as $k => $v) {
            if ($v['parent_id'] == $pid) {
                $v['level'] = $level;
                $v['name'] ='| — —' . str_repeat('| — —', $level) . $v['name'];// 这里可以加个层级次数 //一个层级增加一维数组 
// $v['children'] = self::getTree($data, $v['id'], $level + 1);
$list[] = $v;
                //构建二级数组
                $list = array_merge(self::getTree($data, $v['id'], $level + 1), $list);
} } return $list; }

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
PHP对redis操作详解【转】发布时间:2022-07-10
下一篇:
php上传图片发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap