分享web开发知识

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

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

php 无限极分类

发布时间:2023-09-06 02:19责任编辑:顾先生关键词:暂无标签

无限极分类1:

  

 1 public function judeg($id) 2 { 3 ???$rs = Db::name(‘finance_class‘) -> field(‘parent_code‘) -> where(‘id‘,$id) -> select(); 4 ???$i = 1; 5 ???foreach($rs as $k => $v){ 6 ???  if($v[‘parent_code‘] <> 0){ 7 ???    $i += $this -> judeg($v[‘parent_code‘]); 8 ??????} 9 ???}10 ???return $i;11 }12 13 ?public function cid($id,$pid)14 ?{15 ????$w[‘parent_code‘] = $id;16 ????$rs = Db::name(‘finance_class‘)17 ???????-> field(‘id,code,name,parent_code‘)18 ???????-> where($w)19 ???????-> order(‘code asc‘)20 ???????-> select();21 ????$str = ‘‘;22 ????foreach ($rs as $k => $v) {23 ????????$name = $v[‘name‘];24 ????????$_id = $v[‘id‘];25 ????????$cutOff = ‘‘;26 ????????for($i = 0; $i < $this -> judeg($_id); $i++){27 ????????  $cutOff.=‘-‘;28 ????????}29 ????????if($_id == $pid){30 ????????  $str.=‘<p>他的id=‘.$_id.‘====他的级别‘.$cutOff.$name.‘</p>‘;31 ????????}else{32 ????????  $str.=‘<p>他的id=‘.$_id.‘====他的级别‘.$cutOff.$name.‘</p>‘;33 ????????}34 ????????$str.=$this->cid($_id,$pid);35 ????}36 ????return $str;37}38 public function finance_c()39 {40 ???$w[‘type‘] = ‘资产类‘;41 ???$w[‘parent_code‘] = 0;42 ???$rs = Db::name(‘finance_class‘)43 ?????  -> field(‘id,code,name,parent_code‘)44 ?????  -> where($w)45 ????????-> select();46 ???$str = ‘‘;47 ???foreach ($rs as $k => $v){48 ???  $str.= ‘<p>一级name:‘.$v[‘name‘].‘</p>‘;49 ???  $str.= ???$this -> cid($v[‘id‘],0);50 ???}51 ???echo $str;52 }

  这个方法出来的效率慢,而且很绕。

方法2:

 1 public function getVoucherClass() 2 { 3 ????$lists = Db::name(‘finance_class‘)->select(); 4 ?5 ????$lists = $this->getTree($lists); 6 ?7 ????foreach($lists as $value){ 8 ????  echo str_repeat(‘--‘, $value[‘level‘]), $value[‘name‘].‘<br />‘; 9 ????}10}11 12 /**13 * 递归实现无限极分类14 * @param $array 分类数据15 * @param $pid 父ID16 * @param $level17 * @return $list 18 */19 function getTree($array, $pid =0, $level = 0){20 ???static $list = [];21 ???foreach ($array as $key => $value){22 ???  if ($value[‘parent_code‘] == $pid){23 ??????  $value[‘level‘] = $level;24 ?????????$list[] = $value;25 ?????????unset($array[$key]);26 ?????????$this->getTree($array, $value[‘id‘],$level+1);27 ??????}28 ???}29 ???return $list;30}

无限极分类3:

 1    public function index() 2 ????{ 3 ???????$lists = \think\Db::table(‘ozyx_finance_class‘)->select(); 4 ???????$lists = $this->getTree($lists,0); 5 ?6 ???????foreach ($lists as $k => $v) { 7 ???????????????$lists_one[$v[‘type‘]][]=$v; 8 ???????} 9 10 ???????// halt($lists_one);11 ???????$this->assign(‘lists‘, $lists_one);12 13 ???????return view();14 ????}15 16 ????/**17 ????* 无限极分类18 ????*/19 ????function getTree($data, $pid)20 ????{21 ????????$tree = ‘‘;22 ????????foreach($data as $k => $v)23 ????????{24 ??????????if($v[‘parent_code‘] == $pid)25 ??????????{ ???????26 ???????????????$v[‘parent_code‘] = $this->getTree($data, $v[‘id‘]);27 ???????????????$tree[] = $v;28 ??????????????????unset($data[$k]);29 ??????????}30 ????????}31 ????????return $tree;32 ????}

数据表结构:

php 无限极分类

原文地址:https://www.cnblogs.com/CcPz/p/9860394.html

知识推荐

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