本篇文章给大家谈谈PHP无限极分类原理,以及php无限极分类原理是什么的知识点,同时本文还将给你拓展php如何实现无限极分类?无限极分类的三种实现方法(代码详解)、php实现无限级分类php无限极分类
本篇文章给大家谈谈PHP无限极分类原理,以及php无限极分类原理是什么的知识点,同时本文还将给你拓展php如何实现无限极分类?无限极分类的三种实现方法(代码详解)、php实现无限级分类 php无限极分类显示 php无限极分类下拉框 php无限极分类函、PHP无限极分类、php无限极分类_PHP教程等相关知识,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:- PHP无限极分类原理(php无限极分类原理是什么)
- php如何实现无限极分类?无限极分类的三种实现方法(代码详解)
- php实现无限级分类 php无限极分类显示 php无限极分类下拉框 php无限极分类函
- PHP无限极分类
- php无限极分类_PHP教程
PHP无限极分类原理(php无限极分类原理是什么)
1.递归:程序调用自身的编程技巧称为递归
2.案例:
3.global
4.static
5.说白了递归就是一个循环,用循环实现和递归实现是同样的效果。
php如何实现无限极分类?无限极分类的三种实现方法(代码详解)
本篇文章给大家带来的内容是介绍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 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><p><span>立即学习</span>“<a href="https://pan.quark.cn/s/7fc7563c4182"rel="nofollow" target="_blank">PHP免费学习笔记(深入)</a>”;</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 = \think\Db::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如何实现无限极分类?无限极分类的三种实现方法(代码详解)的详细内容,更多请关注php中文网其它相关文章!
php实现无限级分类 php无限极分类显示 php无限极分类下拉框 php无限极分类函
如果自己写一个系统,经常会用到栏目管理
栏目分类多等级多就需要实现无限级分类了,代码如下
一、下拉菜单中的使用
/* 无限级分类 * * 逻辑递推获取类型 * hid 上级栏目id * step 下级栏目前缀 * tid seleted选项id */ function LogicGetTypeList($datatable=''lanmu_class'',$hid=0,$step='''',$tid=-1) { static $TypeList=''''; $query = "SELECT * FROM `$datatable` WHERE heid=$hid ORDER BY px ASC"; $arrs=mysql_query($query); while($row=@mysql_fetch_assoc($arrs)){ echo $step; $TypeList .= ("<option value="''".$row[''id'']."''" .="($tid" :>".$step.$row[''class'']."</option>\r\n"); //分类名称 LogicGetTypeList($datatable,$row[''id''],$step.''--'',$tid); } return $TypeList; }
代码大概如下,需要根据具体情况进行修改
<?php treeList("",0); function treeList($tag,$classid){ $result=mysql_query("select * from lanmu_class where heid='".$classid."' order by px asc"); while($row=mysql_fetch_array($result)){ /*栏目功能*/ $sqlG=@mysql_fetch_assoc(mysql_query("select * from ht_gn where id='".$row['gongn']."'")); ?><trwidth="5" align="center"> <input type="checkbox" name="dell[]" value="<?php echo $row[''id'']?>"><td><?php echo $tag.$row['class'];?></td> <td><?php echo $sqlG['gn_title'];?></td> <td align="center"> <?php echo $row['template'];?> </td> <td align="center"> <input type="text" value="<?php echo $row[" px>" size="3" echo $row[''id''];?>,this.value)" /> </td> <td> 【<a href="lanmu_add.php?id=<?php%20echo%20%24row%5B''id''%5D;?>">编辑</a>】 【<a href="#" echo>''}">删除</a>】 【<a href="../car/car_pic.php?s_id=<?php%20echo%20%24row%5B''id''%5D;?>">图片集</a>】 </td> </tr><?php treeList($tag."─┴─",$row['id']);?><?php } } ?>
以上就介绍了php实现无限级分类,包括了php,无限级方面的内容,希望对PHP教程有兴趣的朋友有所帮助。
PHP无限极分类
<?php
$items = array(
1 => array(''id'' => 1, ''pid'' => 0, ''name'' => ''安徽省''),
2 => array(''id'' => 2, ''pid'' => 0, ''name'' => ''浙江省''),
3 => array(''id'' => 3, ''pid'' => 1, ''name'' => ''合肥市''),
4 => array(''id'' => 4, ''pid'' => 3, ''name'' => ''长丰县''),
5 => array(''id'' => 5, ''pid'' => 1, ''name'' => ''安庆市''),
);
function generateTree($items){
foreach($items as $item)
$items[$item[''pid'']][''son''][$item[''id'']] = &$items[$item[''id'']];
return isset($items[0][''son'']) ? $items[0][''son''] : array();
}
print_r(generateTree($items));
php无限极分类_PHP教程
php无限极分类
php无限极分类是经常要用到的,本人以前一直用的是已经写好的,所以没仔细去研究过,今天由于项目的需要,需要临时做一个php无限极分类的东东,遂做了一个最简单的,现记录如下,有需要的朋友可以看下。
数据表结构
CREATE TABLE IF NOT EXISTS `category` ( `id` int(5) NOT NULL AUTO_INCREMENT COMMENT ''唯一自增id'', `pid` int(5) NOT NULL DEFAULT ''0'' COMMENT ''父id'', `sort` int(2) NOT NULL DEFAULT ''0'' COMMENT ''排序数字'', `name` varchar(30) DEFAULT NULL COMMENT ''名称'', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT=''无限极分类表'' AUTO_INCREMENT=1 ;
数据
INSERT INTO `category` (`id`, `pid`, `sort`, `name`) VALUES (1, 0, 1, ''php''), (2, 0, 2, ''数据库''), (3, 0, 3, ''javascript''), (4, 1, 1, ''框架模板''), (5, 1, 2, ''函数总结''), (6, 2, 1, ''mysql''), (7, 4, 1, ''框架''), (8, 4, 2, ''模板''), (9, 8, 1, ''smarty''), (10, 7, 2, ''thinkphp''), (11, 10, 1, ''thinkphp技巧''), (12, 10, 2, ''thinkphp模板''), (13, 12, 3, ''模板知识总结''), (14, 12, 2, ''模板视频教程''), (15, 11, 1, ''model技巧'');
函数实现代码
function tree(&$list,$pid=0,$level=0,$html=''--''){ static $tree=array(); foreach($list as $v){ if($v[''pid'']==$pid){ $v[''level'']=$level; $v[''html'']=str_repeat($html,$level); $tree[]=$v; tree($list,$v[''id''],$level+1,$html); } } return $tree; }
以上tree函数的第一个参数$list就是获取的如上表的一个二维数组的结果集。需要注意的是从数据库获取结果集的sql语句必须加上order by sort asc,否则sort字段将不能发挥排序的作用。
立即学习“PHP免费学习笔记(深入)”;
您可能感兴趣的文章
- php清空(删除)指定目录下的文件,不删除目录文件夹的方法
- php获取某段时间内每个月的方法,返回由这些月份组成的数组
- php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
- PHP setcookie无效的原因分析
- php 获取今天明天昨天时间戳的 N 种方法总结
- PHP压缩html网页代码(清除空格,换行符,制表符,注释标记)
- PHP新手用的Insert和Update语句构造类
- PHP中如何将数组变量写入到文件
关于PHP无限极分类原理和php无限极分类原理是什么的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于php如何实现无限极分类?无限极分类的三种实现方法(代码详解)、php实现无限级分类 php无限极分类显示 php无限极分类下拉框 php无限极分类函、PHP无限极分类、php无限极分类_PHP教程的相关知识,请在本站寻找。
本文标签: