php树形结构分类

  public function sort_data($data, $pk = 'id', $pid = 'pid', $child = 'children', $root = 0)
          {
              // 创建Tree
              $tree = [];
              if (!is_array($data)) {
                  return false;
              }
          
              //创建基于主键的数组引用
              $refer = [];
              foreach ($data as $key => $value_data) {
                  $refer[$value_data[$pk]] = &$data[$key];
              }
              foreach ($data as $key => $value_data) {
                  // 判断是否存在parent
                  $parentId = $value_data[$pid];
                  if ($root == $parentId) {
                      $tree[] = &$data[$key];
                  } else {
                      if (isset($refer[$parentId])) {
                          $parent = &$refer[$parentId];
                          $parent[$child][] = &$data[$key];
                      }
                  }
              }
          
              return $tree;
          }

array(19) {
  [0] => array(4) {
    ["id"] => int(1)
    ["name"] => string(12) "常规保养"
    ["pid"] => int(0)
    ["children"] => array(13) {
      [0] => array(3) {
        ["id"] => int(2)
        ["name"] => string(6) "机油"
        ["pid"] => int(1)
      }
      [1] => array(3) {
        ["id"] => int(3)
        ["name"] => string(15) "机油滤清器"
        ["pid"] => int(1)
      }
      [2] => array(3) {
        ["id"] => int(4)
        ["name"] => string(15) "空气滤清器"
        ["pid"] => int(1)
      }
      [3] => array(3) {
        ["id"] => int(5)
        ["name"] => string(15) "燃油滤清器"
        ["pid"] => int(1)
      }
      [4] => array(3) {
        ["id"] => int(6)
        ["name"] => string(18) "燃油系统养护"
        ["pid"] => int(1)
      }
      [5] => array(3) {
        ["id"] => int(7)
        ["name"] => string(15) "发动机养护"
        ["pid"] => int(1)
      }
      [6] => array(3) {
        ["id"] => int(8)
        ["name"] => string(18) "发动机舱清洗"
        ["pid"] => int(1)
      }
      [7] => array(3) {
        ["id"] => int(35)
        ["name"] => string(15) "小保养服务"
        ["pid"] => int(1)
      }
      [8] => array(3) {
        ["id"] => int(41)
        ["name"] => string(14) "机油XX服务"
        ["pid"] => int(1)
      }
      [9] => array(3) {
        ["id"] => int(54)
        ["name"] => string(9) "前雨刷"
        ["pid"] => int(1)
      }
      [10] => array(3) {
        ["id"] => int(57)
        ["name"] => string(15) "助力转向油"
        ["pid"] => int(1)
      }
      [11] => array(3) {
        ["id"] => int(80)
        ["name"] => string(18) "发动机清洗油"
        ["pid"] => int(1)
      }
      [12] => array(3) {
        ["id"] => int(84)
        ["name"] => string(9) "不冻液"
        ["pid"] => int(1)
      }
    }
  }
  [1] => array(4) {
    ["id"] => int(9)
    ["name"] => string(12) "常用配件"
    ["pid"] => int(0)
    ["children"] => array(12) {
      [0] => array(3) {
        ["id"] => int(10)
        ["name"] => string(9) "后雨刷"
        ["pid"] => int(9)
      }
      [1] => array(3) {
        ["id"] => int(11)
        ["name"] => string(9) "前大灯"
        ["pid"] => int(9)
      }
      [2] => array(3) {
        ["id"] => int(12)
        ["name"] => string(6) "雾灯"
        ["pid"] => int(9)
      }
      [3] => array(3) {
        ["id"] => int(13)
        ["name"] => string(9) "蓄电池"
        ["pid"] => int(9)
      }
      [4] => array(3) {
        ["id"] => int(58)
        ["name"] => string(9) "远光灯"
        ["pid"] => int(9)
      }
      [5] => array(3) {
        ["id"] => int(59)
        ["name"] => string(9) "近光灯"
        ["pid"] => int(9)
      }
      [6] => array(3) {
        ["id"] => int(64)
        ["name"] => string(15) "左前减震器"
        ["pid"] => int(9)
      }
      [7] => array(3) {
        ["id"] => int(65)
        ["name"] => string(15) "右前减震器"
        ["pid"] => int(9)
      }
      [8] => array(3) {
        ["id"] => int(66)
        ["name"] => string(15) "左后减震器"
        ["pid"] => int(9)
      }
      [9] => array(3) {
        ["id"] => int(67)
        ["name"] => string(15) "右后减震器"
        ["pid"] => int(9)
      }
      [10] => array(3) {
        ["id"] => int(68)
        ["name"] => string(45) "附件皮带套装(发电机皮带套装)"
        ["pid"] => int(9)
      }
      [11] => array(3) {
        ["id"] => int(69)
        ["name"] => string(18) "正时皮带套装"
        ["pid"] => int(9)
      }
    }
  }
  [2] => array(4) {
    ["id"] => int(14)
    ["name"] => string(12) "空调养护"
    ["pid"] => int(0)
    ["children"] => array(7) {
      [0] => array(3) {
        ["id"] => int(15)
        ["name"] => string(15) "空调滤清器"
        ["pid"] => int(14)
      }
      [1] => array(3) {
        ["id"] => int(16)
        ["name"] => string(18) "空调管路杀菌"
        ["pid"] => int(14)
      }
      [2] => array(3) {
        ["id"] => int(17)
        ["name"] => string(15) "空调制冷剂"
        ["pid"] => int(14)
      }
      [3] => array(3) {
        ["id"] => int(18)
        ["name"] => string(18) "压缩机冷冻油"
        ["pid"] => int(14)
      }
      [4] => array(3) {
        ["id"] => int(19)
        ["name"] => string(24) "蒸发箱可视化清洗"
        ["pid"] => int(14)
      }
      [5] => array(3) {
        ["id"] => int(20)
        ["name"] => string(27) "空调压缩机管路养护"
        ["pid"] => int(14)
      }
      [6] => array(3) {
        ["id"] => int(56)
        ["name"] => string(9) "冷冻油"
        ["pid"] => int(14)
      }
    }
  }
  [3] => array(4) {
    ["id"] => int(21)
    ["name"] => string(12) "刹车养护"
    ["pid"] => int(0)
    ["children"] => array(8) {
      [0] => array(3) {
        ["id"] => int(22)
        ["name"] => string(9) "刹车油"
        ["pid"] => int(21)
      }
      [1] => array(3) {
        ["id"] => int(23)
        ["name"] => string(12) "刹车片前"
        ["pid"] => int(21)
      }
      [2] => array(3) {
        ["id"] => int(24)
        ["name"] => string(12) "刹车盘前"
        ["pid"] => int(21)
      }
      [3] => array(3) {
        ["id"] => int(55)
        ["name"] => string(18) "刹车系统养护"
        ["pid"] => int(21)
      }
      [4] => array(3) {
        ["id"] => int(60)
        ["name"] => string(12) "刹车盘后"
        ["pid"] => int(21)
      }
      [5] => array(3) {
        ["id"] => int(61)
        ["name"] => string(12) "刹车片后"
        ["pid"] => int(21)
      }
      [6] => array(3) {
        ["id"] => int(62)
        ["name"] => string(18) "前刹车报警线"
        ["pid"] => int(21)
      }
      [7] => array(3) {
        ["id"] => int(63)
        ["name"] => string(18) "后刹车报警线"
        ["pid"] => int(21)
      }
    }
  }
  [4] => array(4) {
    ["id"] => int(25)
    ["name"] => string(12) "水箱养护"
    ["pid"] => int(0)
    ["children"] => array(3) {
      [0] => array(3) {
        ["id"] => int(26)
        ["name"] => string(9) "防冻液"
        ["pid"] => int(25)
      }
      [1] => array(3) {
        ["id"] => int(27)
        ["name"] => string(12) "水箱清洗"
        ["pid"] => int(25)
      }
      [2] => array(3) {
        ["id"] => int(28)
        ["name"] => string(18) "水箱防锈保护"
        ["pid"] => int(25)
      }
    }
  }
  [5] => array(4) {
    ["id"] => int(29)
    ["name"] => string(18) "深度清洁养护"
    ["pid"] => int(0)
    ["children"] => array(6) {
      [0] => array(3) {
        ["id"] => int(30)
        ["name"] => string(9) "火花塞"
        ["pid"] => int(29)
      }
      [1] => array(3) {
        ["id"] => int(31)
        ["name"] => string(15) "节气门清洗"
        ["pid"] => int(29)
      }
      [2] => array(3) {
        ["id"] => int(32)
        ["name"] => string(15) "喷油嘴清洗"
        ["pid"] => int(29)
      }
      [3] => array(3) {
        ["id"] => int(33)
        ["name"] => string(18) "进气系统清洗"
        ["pid"] => int(29)
      }
      [4] => array(3) {
        ["id"] => int(34)
        ["name"] => string(18) "三元催化清洗"
        ["pid"] => int(29)
      }
      [5] => array(3) {
        ["id"] => int(36)
        ["name"] => string(12) "变速箱油"
        ["pid"] => int(29)
      }
    }
  }
  [6] => array(4) {
    ["id"] => int(38)
    ["name"] => string(12) "美容洗车"
    ["pid"] => int(0)
    ["children"] => array(9) {
      [0] => array(3) {
        ["id"] => int(39)
        ["name"] => string(6) "镀晶"
        ["pid"] => int(38)
      }
      [1] => array(3) {
        ["id"] => int(40)
        ["name"] => string(6) "镀膜"
        ["pid"] => int(38)
      }
      [2] => array(3) {
        ["id"] => int(42)
        ["name"] => string(6) "打蜡"
        ["pid"] => int(38)
      }
      [3] => array(3) {
        ["id"] => int(43)
        ["name"] => string(6) "封釉"
        ["pid"] => int(38)
      }
      [4] => array(3) {
        ["id"] => int(44)
        ["name"] => string(6) "贴膜"
        ["pid"] => int(38)
      }
      [5] => array(3) {
        ["id"] => int(45)
        ["name"] => string(12) "隐形车衣"
        ["pid"] => int(38)
      }
      [6] => array(3) {
        ["id"] => int(46)
        ["name"] => string(12) "真皮护理"
        ["pid"] => int(38)
      }
      [7] => array(3) {
        ["id"] => int(70)
        ["name"] => string(6) "喷漆"
        ["pid"] => int(38)
      }
      [8] => array(3) {
        ["id"] => int(71)
        ["name"] => string(12) "钣金喷漆"
        ["pid"] => int(38)
      }
    }
  }
  [7] => array(4) {
    ["id"] => int(47)
    ["name"] => string(12) "汽车改装"
    ["pid"] => int(0)
    ["children"] => array(10) {
      [0] => array(3) {
        ["id"] => int(48)
        ["name"] => string(18) "真皮座椅改装"
        ["pid"] => int(47)
      }
      [1] => array(3) {
        ["id"] => int(49)
        ["name"] => string(18) "顶棚翻新改装"
        ["pid"] => int(47)
      }
      [2] => array(3) {
        ["id"] => int(50)
        ["name"] => string(21) "内饰星空顶改装"
        ["pid"] => int(47)
      }
      [3] => array(3) {
        ["id"] => int(51)
        ["name"] => string(18) "流媒体记录仪"
        ["pid"] => int(47)
      }
      [4] => array(3) {
        ["id"] => int(52)
        ["name"] => string(12) "车身改色"
        ["pid"] => int(47)
      }
      [5] => array(3) {
        ["id"] => int(53)
        ["name"] => string(12) "中控导航"
        ["pid"] => int(47)
      }
      [6] => array(3) {
        ["id"] => int(76)
        ["name"] => string(15) "行车记录仪"
        ["pid"] => int(47)
      }
      [7] => array(3) {
        ["id"] => int(77)
        ["name"] => string(12) "汽车导航"
        ["pid"] => int(47)
      }
      [8] => array(3) {
        ["id"] => int(78)
        ["name"] => string(9) "流媒体"
        ["pid"] => int(47)
      }
      [9] => array(3) {
        ["id"] => int(79)
        ["name"] => string(12) "座椅加热"
        ["pid"] => int(47)
      }
    }
  }
  [8] => array(4) {
    ["id"] => int(72)
    ["name"] => string(12) "汽车装饰"
    ["pid"] => int(0)
    ["children"] => array(15) {
      [0] => array(3) {
        ["id"] => int(73)
        ["name"] => string(12) "汽车把套"
        ["pid"] => int(72)
      }
      [1] => array(3) {
        ["id"] => int(74)
        ["name"] => string(6) "脚垫"
        ["pid"] => int(72)
      }
      [2] => array(3) {
        ["id"] => int(75)
        ["name"] => string(6) "坐垫"
        ["pid"] => int(72)
      }
      [3] => array(3) {
        ["id"] => int(82)
        ["name"] => string(12) "汽车香水"
        ["pid"] => int(72)
      }
      [4] => array(3) {
        ["id"] => int(83)
        ["name"] => string(12) "汽车挂件"
        ["pid"] => int(72)
      }
      [5] => array(3) {
        ["id"] => int(85)
        ["name"] => string(9) "烟灰缸"
        ["pid"] => int(72)
      }
      [6] => array(3) {
        ["id"] => int(86)
        ["name"] => string(6) "水杯"
        ["pid"] => int(72)
      }
      [7] => array(3) {
        ["id"] => int(87)
        ["name"] => string(12) "汽车摆件"
        ["pid"] => int(72)
      }
      [8] => array(3) {
        ["id"] => int(88)
        ["name"] => string(12) "手机支架"
        ["pid"] => int(72)
      }
      [9] => array(3) {
        ["id"] => int(89)
        ["name"] => string(6) "茶叶"
        ["pid"] => int(72)
      }
      [10] => array(3) {
        ["id"] => int(90)
        ["name"] => string(6) "手包"
        ["pid"] => int(72)
      }
      [11] => array(3) {
        ["id"] => int(91)
        ["name"] => string(12) "汽车饮品"
        ["pid"] => int(72)
      }
      [12] => array(4) {
        ["id"] => int(140)
        ["name"] => string(18) "塑型PRO360软包"
        ["pid"] => int(72)
        ["children"] => array(4) {
          [0] => array(3) {
            ["id"] => int(130)
            ["name"] => string(9) "漫步者"
            ["pid"] => int(140)
          }
          [1] => array(3) {
            ["id"] => int(131)
            ["name"] => string(9) "攀登者"
            ["pid"] => int(140)
          }
          [2] => array(3) {
            ["id"] => int(132)
            ["name"] => string(9) "探索者"
            ["pid"] => int(140)
          }
          [3] => array(3) {
            ["id"] => int(133)
            ["name"] => string(9) "领航者"
            ["pid"] => int(140)
          }
        }
      }
      [13] => array(4) {
        ["id"] => int(141)
        ["name"] => string(15) "塑型360软包"
        ["pid"] => int(72)
        ["children"] => array(4) {
          [0] => array(3) {
            ["id"] => int(134)
            ["name"] => string(12) "玲珑系列"
            ["pid"] => int(141)
          }
          [1] => array(3) {
            ["id"] => int(135)
            ["name"] => string(12) "锦绣系列"
            ["pid"] => int(141)
          }
          [2] => array(3) {
            ["id"] => int(136)
            ["name"] => string(12) "星耀系列"
            ["pid"] => int(141)
          }
          [3] => array(3) {
            ["id"] => int(137)
            ["name"] => string(12) "雅尊系列"
            ["pid"] => int(141)
          }
        }
      }
      [14] => array(4) {
        ["id"] => int(142)
        ["name"] => string(9) "360软包"
        ["pid"] => int(72)
        ["children"] => array(2) {
          [0] => array(3) {
            ["id"] => int(138)
            ["name"] => string(12) "凌风系列"
            ["pid"] => int(142)
          }
          [1] => array(3) {
            ["id"] => int(139)
            ["name"] => string(12) "凌云系列"
            ["pid"] => int(142)
          }
        }
      }
    }
  }
  [9] => array(4) {
    ["id"] => int(92)
    ["name"] => string(15) "安装服务费"
    ["pid"] => int(0)
    ["children"] => array(1) {
      [0] => array(3) {
        ["id"] => int(93)
        ["name"] => string(9) "工时费"
        ["pid"] => int(92)
      }
    }
  }
  [10] => array(4) {
    ["id"] => int(94)
    ["name"] => string(6) "家纺"
    ["pid"] => int(0)
    ["children"] => array(1) {
      [0] => array(3) {
        ["id"] => int(95)
        ["name"] => string(15) "荞行健家纺"
        ["pid"] => int(94)
      }
    }
  }
  [11] => array(4) {
    ["id"] => int(96)
    ["name"] => string(12) "设备工具"
    ["pid"] => int(0)
    ["children"] => array(1) {
      [0] => array(3) {
        ["id"] => int(103)
        ["name"] => string(12) "设备工具"
        ["pid"] => int(96)
      }
    }
  }
  [12] => array(4) {
    ["id"] => int(97)
    ["name"] => string(12) "洗车耗材"
    ["pid"] => int(0)
    ["children"] => array(1) {
      [0] => array(3) {
        ["id"] => int(104)
        ["name"] => string(12) "洗车耗材"
        ["pid"] => int(97)
      }
    }
  }
  [13] => array(4) {
    ["id"] => int(98)
    ["name"] => string(12) "设计装修"
    ["pid"] => int(0)
    ["children"] => array(1) {
      [0] => array(3) {
        ["id"] => int(105)
        ["name"] => string(12) "设计装修"
        ["pid"] => int(98)
      }
    }
  }
  [14] => array(4) {
    ["id"] => int(99)
    ["name"] => string(12) "整店输出"
    ["pid"] => int(0)
    ["children"] => array(1) {
      [0] => array(3) {
        ["id"] => int(106)
        ["name"] => string(12) "整店输出"
        ["pid"] => int(99)
      }
    }
  }
  [15] => array(4) {
    ["id"] => int(100)
    ["name"] => string(9) "太阳膜"
    ["pid"] => int(0)
    ["children"] => array(4) {
      [0] => array(3) {
        ["id"] => int(107)
        ["name"] => string(9) "太阳膜"
        ["pid"] => int(100)
      }
      [1] => array(3) {
        ["id"] => int(127)
        ["name"] => string(15) "量子前挡膜"
        ["pid"] => int(100)
      }
      [2] => array(3) {
        ["id"] => int(128)
        ["name"] => string(12) "侧后挡膜"
        ["pid"] => int(100)
      }
      [3] => array(3) {
        ["id"] => int(129)
        ["name"] => string(15) "全车膜套餐"
        ["pid"] => int(100)
      }
    }
  }
  [16] => array(4) {
    ["id"] => int(101)
    ["name"] => string(12) "隐形车衣"
    ["pid"] => int(0)
    ["children"] => array(1) {
      [0] => array(3) {
        ["id"] => int(108)
        ["name"] => string(12) "隐形车衣"
        ["pid"] => int(101)
      }
    }
  }
  [17] => array(3) {
    ["id"] => int(102)
    ["name"] => string(9) "装具店"
    ["pid"] => int(0)
  }
  [18] => array(4) {
    ["id"] => int(116)
    ["name"] => string(6) "腊坊"
    ["pid"] => int(0)
    ["children"] => array(10) {
      [0] => array(3) {
        ["id"] => int(117)
        ["name"] => string(18) "镜面修复系列"
        ["pid"] => int(116)
      }
      [1] => array(3) {
        ["id"] => int(118)
        ["name"] => string(18) "专业套装系列"
        ["pid"] => int(116)
      }
      [2] => array(3) {
        ["id"] => int(119)
        ["name"] => string(9) "蜡系列"
        ["pid"] => int(116)
      }
      [3] => array(3) {
        ["id"] => int(120)
        ["name"] => string(15) "保护剂系列"
        ["pid"] => int(116)
      }
      [4] => array(3) {
        ["id"] => int(121)
        ["name"] => string(15) "清洁剂系列"
        ["pid"] => int(116)
      }
      [5] => array(3) {
        ["id"] => int(122)
        ["name"] => string(21) "特殊清洗剂系列"
        ["pid"] => int(116)
      }
      [6] => array(3) {
        ["id"] => int(123)
        ["name"] => string(22) "洗车液/水蜡系列"
        ["pid"] => int(116)
      }
      [7] => array(3) {
        ["id"] => int(124)
        ["name"] => string(13) "设备/机器"
        ["pid"] => int(116)
      }
      [8] => array(3) {
        ["id"] => int(125)
        ["name"] => string(19) "辅助用品/工具"
        ["pid"] => int(116)
      }
      [9] => array(3) {
        ["id"] => int(126)
        ["name"] => string(9) "宣传品"
        ["pid"] => int(116)
      }
    }
  }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值