分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

php实现无限级分类的两种方式

发布时间:2023-09-06 02:00责任编辑:胡小海关键词:暂无标签
一、梯式:
  1. 代码:
    /*@desc:获取梯式分类@param data 需要转换的数据@param pkey 上级的键名@param key 主键名@param pid 顶级id@param level 起始层级 默认0@return ret 转换后的数组*/function getleveltree($data,$pkey,$key,$pid = 0,$level = 0){$ret = array();foreach ($data as $v){ ???if($v[$pkey] == $pid){ ???????$v[‘level‘] = $level; ???????$ret[] = $v; ???????$ret = array_merge($ret,getleveltree($data,$pkey,$key,$v[$key],$level+1)); ???}}return $ret;}
  2. 测试:
    $data = array( ???array( ???????‘id‘ => 1, ???????‘pid‘ => 0 ???), ???array( ???????‘id‘ => 2, ???????‘pid‘ => 1 ???), ???array( ???????‘id‘ => 3, ???????‘pid‘ => 2 ???));$ret = getleveltree($data,‘pid‘,‘id‘);var_dump($ret);
  3. 输出:
    array(3) {[0]=>array(3) {["id"]=>int(1)["pid"]=>int(0)["level"]=>int(0)}[1]=>array(3) {["id"]=>int(2)["pid"]=>int(1)["level"]=>int(1)}[2]=>array(3) {["id"]=>int(3)["pid"]=>int(2)["level"]=>int(2)}}

    二、裂变式:

  4. 代码:
    /*@desc:获取裂变式分类@param data 需要转换的数据@param pkey 上级的键名@param key 主键名@param pid 顶级id 默认0@return ret 转换后的数组*/function getsubtree($data,$pkey,$key,$pid = 0) {$ret = array();foreach ($data as $v){ ???if($v[$pkey] == $pid){ ???????$v[‘child‘] = getsubtree($data,$pkey,$key,$v[$key]); ???????$ret[] = $v; ???????????????}}return $ret;}
  5. 测试:
    $data = array( ???array( ???????‘id‘ => 1, ???????‘pid‘ => 0 ???), ???array( ???????‘id‘ => 2, ???????‘pid‘ => 1 ???), ???array( ???????‘id‘ => 3, ???????‘pid‘ => 2 ???));$ret = getsubtree($data,‘pid‘,‘id‘);var_dump($ret);
  6. 输出:
    array(1) {[0]=>array(3) {["id"]=>int(1)["pid"]=>int(0)["child"]=>array(1) { ?[0]=> ?array(3) { ???["id"]=> ???int(2) ???["pid"]=> ???int(1) ???["child"]=> ???array(1) { ?????[0]=> ?????array(3) { ???????["id"]=> ???????int(3) ???????["pid"]=> ???????int(2) ???????["child"]=> ???????array(0) { ???????} ?????} ???} ?}}}}

php实现无限级分类的两种方式

原文地址:http://blog.51cto.com/12173069/2131148

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved