php无限极分类

2 篇文章 0 订阅
   public function menu()
    {
        $model = new Menu();
        $data = $model->menuAll();
        $list = $this->demo($data,0);
        return json_encode(["code"=>101,"message"=>'返回菜单成功',"menudata"=>$list]);
    }




public function get_tree($arr,$pk='sid',$upid='pid',$child='child')
{
    $items = array();
             foreach($arr as $val){
                 $items[$val['sid']] = $val;
     }
    $tree = array();
     foreach($items as $k=>$val){
                if(isset($items[$val[$upid]])){
                         $items[$val[$upid]][$child][]=&$items[$k];
         }else{
                         $tree[] = &$items[$k];
         }
    }
    return $tree;





}

 


/*
 * 递归生成菜单
 *
 * */
public function demo($data,$pid)
{
    $tree = '';
    foreach($data as $k => $v)
    {
        if($v['pid'] == $pid)
        {         //父亲找到儿子
            $v['children'] =$this->demo($data, $v['mid']);
            $tree[] = $v;
            unset($data[$k]);
        }
    }
    return $tree;

}



 /**
     * 递归获取所有的子分类的ID
     * */
    public function get_all_child($array,$id){
        $arr = array();
        foreach($array as $v){
            if($v['pc_pid'] == $id){
                $arr[] = $v['pc_sid'];
                $arr = array_merge($arr,$this->get_all_child($array,$v['pc_sid']));
            };
        };
        return $arr;
    }

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值