php中构建树状图

   /**
     *  指定根层级的树状图
     * @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;
    }

猜你喜欢

转载自www.cnblogs.com/huay/p/10817867.html