php如何实现无限极分类?无限极分类的三种实现方法(代码详解)

php如何实现无限极分类?无限极分类的三种实现方法(代码详解)

内容导读

收集整理的这篇技术教程文章主要介绍了php如何实现无限极分类?无限极分类的三种实现方法(代码详解),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2303字,纯文字阅读大概需要4分钟

内容图文

本篇文章给大家带来的内容是介绍php如何实现无限极分类?无限极分类的三种实现方法(代码详解)。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。

无限极分类1:

public function judeg($id){
 $rs = Db::name('finance_class') -> field('parent_code') -> where('id',$id) -> select();
 $i = 1;
 foreach($rs as $k => $v){
   if($v['parent_code'] <> 0){
     $i += $this -> judeg($v['parent_code']);


}
 }
 return $i;} public function cid($id,$pid) {

$w['parent_code'] = $id;

$rs = Db::name('finance_class')


 -> field('id,code,name,parent_code')


 -> where($w)


 -> order('code asc')


 -> select();

$str = '';

foreach ($rs as $k => $v) {



$name = $v['name'];



$_id = $v['id'];



$cutOff = '';



for($i = 0; $i < $this -> judeg($_id); $i++){



  $cutOff.='-';



}



if($_id == $pid){



  $str.='<p>他的id='.$_id.'====他的级别'.$cutOff.$name.'</p>';



}else{



  $str.='<p>他的id='.$_id.'====他的级别'.$cutOff.$name.'</p>';



}



$str.=$this->cid($_id,$pid);

}

return $str;37}public function finance_c(){
 $w['type'] = '资产类';
 $w['parent_code'] = 0;
 $rs = Db::name('finance_class')

   -> field('id,code,name,parent_code')

   -> where($w)



-> select();
 $str = '';
 foreach ($rs as $k => $v){
   $str.= '<p>一级name:'.$v['name'].'</p>';
   $str.=

$this -> cid($v['id'],0);
 }
 echo $str;}

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

方法2:

public function getVoucherClass(){

$lists = Db::name('finance_class')->select();

$lists = $this->getTree($lists);

foreach($lists as $value){

  echo str_repeat('--', $value['level']), $value['name'].'<br />';

}10}/*** 递归实现无限极分类* @param $array 分类数据* @param $pid 父ID* @param $level* @return $list */function getTree($array, $pid =0, $level = 0){
 static $list = [];
 foreach ($array as $key => $value){
   if ($value['parent_code'] == $pid){


  $value['level'] = $level;



 $list[] = $value;



 unset($array[$key]);



 $this->getTree($array, $value['id'],$level+1);


}
 }
 return $list;30}

无限极分类3:

 public function index()

{


 $lists = thinkDb::table('ozyx_finance_class')->select();


 $lists = $this->getTree($lists,0);


 foreach ($lists as $k => $v) {






 $lists_one[$v['type']][]=$v;


 }


 // halt($lists_one);


 $this->assign('lists', $lists_one);


 return view();

}

/**

* 无限极分类

*/

function getTree($data, $pid)

{



$tree = '';



foreach($data as $k => $v)



{




if($v['parent_code'] == $pid)




{










 $v['parent_code'] = $this->getTree($data, $v['id']);






 $tree[] = $v;








unset($data[$k]);




}



}



return $tree;

}

数据表结构:

以上就是php如何实现无限极分类?无限极分类的三种实现方法(代码详解)的详细内容,更多请关注Gxl网其它相关文章!

内容总结

以上是为您收集整理的php如何实现无限极分类?无限极分类的三种实现方法(代码详解)全部内容,希望文章能够帮你解决php如何实现无限极分类?无限极分类的三种实现方法(代码详解)所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。

内容备注

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。


本文关键词:

联系我们

在线咨询:点击这里给我发消息

邮件:w420220301@qq.com