//递归无限分类树 public static function diGui($data, $pid) { $arr = collect([]); if (empty($data)) { return ''; } foreach ($data as $key => $value) { if ($value['parent_id'] == $pid) { $value['submenu'] = self::diGui($data, $value['id']); $arr[] = $value; }…
//新闻类别管理 public function new_classify() { $arr = M('news_classify')->where("fid = 0")->select(); $html = '<ul class="easyui-tree"><li><span>新闻中心</span><ul>'; if (!empty($arr)) { $html .= $this->_t…
首先创建无限分类的数据表,我这里采用的是id.name.pid这种类型(当然还有很多种无限分类的方式了,比如:id.name.pid.path.left.right左右节点的形式) CREATE TABLE `class` ( `id` int(10) unsigned NOT NULL auto_increment, `name` varchar(128) default NULL, `pid` int(11) default NULL, PRIMARY KEY (`id`) ) ENGINE…
去年在一家公司做项目开发,用到商城三级分类,看了之前的程序员写的分类也是头大,三级分类,循环套循环三次( foreach(){ foreach(){ foreach(){ } } } ),然后写了一个无限级分类.提供参考,记录一下. <?PHP function eachCategory($cates,$lv=1){ foreach($cates as $v){ echo $v['name']; echo str_repeat(' >> ',$lv); if($v['child']){…
<?php $data[]=array('id'=>1,'parentid'=>0,'name'=>'中国'); $data[]=array('id'=>2,'parentid'=>0,'name'=>'美国'); $data[]=array('id'=>3,'parentid'=>0,'name'=>'韩国'); $data[]=array('id'=>4,'parentid'=>1,'name'=>'北京'); $data[…
Think PHP递归重新排序无限极子分类数组 // 递归重新排序无限极子分类数组 function recursive($array,$pid=0,$level=0){ $arr = array(); foreach ($array as $v) { if($v['pid'] == $pid){ $v['level'] = $level; $v['html'] = str_repeat('--',$level); $arr[] = $v; $arr = array_merge($arr,rec…
无限分类是什么就不废话了,可以用递归实现,但是递归从数据库取东西用递归效率偏低,如果从表设计入手,就很容易做到网站导航的实现,下面是某论坛导航,如下图 网上无限分类大多不全面,今天我会从设计表开始, 首先我们先做视图界面, <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>白超华-博客园</title> &…
TreeView递归绑定无限分类数据 实现一个动态绑定,无限级分类数据时,需要将数据绑定到TreeView控件,分类表的结构是这样的: 字段 类型 Id int ParentId int Name Nvarchar(64) 实现数据绑定: private void ControlsDataBind() { tvCategory.Nodes.Clear(); List<Models.Category> types = CommonNews.Helper.OperateContext.Curren…
递归无限级分类有几种形式,我这里仅仅举例比較经常使用的三种: 第一种:返回有排序的数组: <?php $data = array( 1 => array( 'id' => 1, 'pid' => 0, 'user_name' => 'one', ), 2 => array( 'id' => 2, 'pid' => 1, 'user_name' => 'two', ), 3 => array( 'id' => 3, 'pid' => 1…
无限级分类原理简介 无限分类看似"高大上",实际上原理是非常简单的 .无限分类不仅仅需要代码的巧妙性,也要依托数据库设计的合理性.要满足无限级分类,数据库需要有两个必须的字段,id,pid.id用来标识自身,而 pid则是用来表明父级id.也就是说,每个分类记录不仅描述了自身,还描述了与其关心最为紧密的另一个id.看似复杂的事情被这样一个小技巧解决了. 闲话不多说,该展现本文的实例了. 作为一个狂热海贼迷,这篇的实例我就以<海贼王>人物组织做案例. 数据库准备: 建表one…