Document
首页 实现无线分类、添加、排序

实现无线分类、添加、排序

江小白 2018-04-26 0 228

实现无线分类

1、在数据库中添加 pid字段  pid=0 说明是最高级分类。

2、添加 path字段 最大类path是0   类子path 拼上父类的id  如:

调用一个算法,完成无限分类按照等级排序、添加。

实现结果:如图


tp5为例子:

$db = Db::name('cate');

$data = $db->field(['*','id','cate_name','concat(path,"-",id)' => 'truename'])->select();

拼接字符串查询数据

遍历数据 以数组切分$v[‘path’]

记录每一个字符串中的逗号个数

$num = count($arr);

//重新拼接字符串

$str = Str_repeat(‘|---’,$num);

$data[$k][‘level’] = $tr.$v[‘cate_name’];


可以让data中的数据重新排序

/*

*

*排序算法

*/

public function reSort($data,$pid=0,$lev=0){


static $arrt = array();

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

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

   $v['lev'] = $lev;

   $arrt[] = $v;

   $this->reSort($data,$v['id'],$lev+1);

  }

 }



 return $arrt;

}



打赏作者
打赏作者 打赏作者
免责声明:本文仅代表作者个人观点,与本网站无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
作者: 2018-04-26 14:13:47

发表评论

看不清?点击更换

评论列表: