PHP无限级分类

  • PHP无限级分类
    if (!function_exists('getTree')) {
        /**
         * 递归实现无限极分类
         * @param $data      array   分类数据
         * @param $childName string  子名称
         * @param $pk        string  主键名
         * @return array 整理好分类的数组
         */
        function getTree(array $data, string $childName = 'children', string $pk = 'id'): array
        {
            $items = array();
            foreach($data as $v){
                $items[$v[$pk]] = $v;
            }
            $tree = array();
            foreach($items as $k => $item){
                if(isset($items[$item['pid']])){
                    $items[$item['pid']][$childName][] = &$items[$k];
                }else{
                    $tree[] = &$items[$k];
                }
            }
            return $tree;
        }
    }

0 条评论