php实现无限极分类,js遍历显示无限极分类的json数组

数据库设计如下:pid代表父id,默认为0(顶级分类)

引用的方法如下:(递归的方法会降低性能)

function generateTree($data){
	    $items=array();
		foreach($data as $v){//将数组存入$items,且$items的键为$data中的id
			$items[$v['id']] = $v;
		}
		$tree=array();
		foreach($items as $item){
			if(isset($items[$item['pid']])){//通过pid判断$items中是否有对应的数组,$itms[0]不存在
				$items[$item['pid']]['sub'][]=&$items[$item['id']];
			}
			else{
				$tree[]=&$items[$item['id']];
			}
		}
		return $tree;
	}

再转为json格式。

前端js递归遍历出所有的结果:

var str = "";
var forData = function(childData,str){
	str += "├&nbsp&nbsp&nbsp";
	for(var i=0;i<childData.length;i++){	
            this.template=_.template($("#class-tpl").html());
            this.tblTemp=_.template($("#list-tpl").html());
	    var obj = childData[i];
            if(obj.sub){//若存在子类,则递归遍历
                obj.name=str+obj.name;
	        $("#tbd_class_basic").append(this.tblTemp(obj));
                forData(obj.sub,str);
	    }else{
                obj.name=str+obj.name;
                $("#tbd_class_basic").append(this.tblTemp(obj));
	    }
	 }
      }
forData(response,str);

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值