正文描述:《实现php+mysql无限分类的方法汇总》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习,了解了党的发展历程,对党的性质、宗旨、任务等基本知识有了进一步的了解实现PHP+Mysql无限分类的方法汇总 这篇文章主要给大家汇总介绍了实现PHP+Mysql无限分类的2种方法,并对比分析了2种方法的优劣,需要的朋友可以参考下 无限分类是个老话题了,来看看PHP结合Mysql如何实现。 第一种方法 这种方法是很常见、很传统的一种,先看表结构 表:category idint主键,自增 namevarchar分类名称 pidint父类
2、id,默认0 顶级分类的pid默认就是0了。当我们想取出某个分类的子分类树的时候,基本思路就是递归,当然,出于效率问题不建议每次递归都查询数据库,通常的做法是先讲所有分类取出来,保存到PHP数组里,再进行处理,最后还可以将结果缓存起来以提高下次请求的效率。 先来构建一个原始数组,这个直接从数据库中拉出来就行: 代码如下: $categories=array( array('id'=>1,'name'=>'电脑','pid'=>0),对党的认识也有了进一步的提高。才真正体会到了中国共产党的伟大、光荣和正确,更感到
3、只有中国共产党是全中国最广大人民利益的忠实代表我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习,了解了党的发展历程,对党的性质、宗旨、任务等基本知识有了进一步的了解 array('id'=>2,'name'=>'手机','pid'=>0), array('id'=>3,'name'=>'笔记本','pid'=>1), array('id'=>4,'name'=>'台式机','pid'=>1), array('id'=>5,'name'=>'智能机','pid'=>2), array('id
4、'=>6,'name'=>'功能机','pid'=>2), array('id'=>7,'name'=>'超级本','pid'=>3), array('id'=>8,'name'=>'游戏本','pid'=>3), ); 目标是将它转化为下面这种结构 电脑 笔记本 超级本 游戏本 台式机 手机 智能机 功能机 用数组来表示的话,可以增加一个children键来存储它的子分类: 代码如下: array( //1对应id,方便直接读取对党的认识也有了进一步的提高。才真正体会到了中国共产党的伟大
5、、光荣和正确,更感到只有中国共产党是全中国最广大人民利益的忠实代表我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习,了解了党的发展历程,对党的性质、宗旨、任务等基本知识有了进一步的了解 1=>array( 'id'=>1, 'name'=>'电脑', 'pid'=>0, children=>array( &array( 'id'=>3, 'name'=>'笔记本', 'pid'=>1, 'children'=>array( //此处省略 ) ), &array( 'id
6、'=>4, 'name'=>'台式机', 'pid'=>1, 'children'=>array( //此处省略 ) ), )对党的认识也有了进一步的提高。才真正体会到了中国共产党的伟大、光荣和正确,更感到只有中国共产党是全中国最广大人民利益的忠实代表我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习,了解了党的发展历程,对党的性质、宗旨、任务等基本知识有了进一步的了解 ), //其他分类省略 ) 处理过程: 代码如下: $tree=array(); //第一步,将分类id
7、作为数组key,并创建children单元 foreach($categoriesas$category){ $tree[$category['id']]=$category; $tree[$category['id']]['children']=array(); } //第二部,利用引用,将每个分类添加到父类children数组中,这样一次遍历即可形成树形结构。 foreach($treeas$k=>$item){ if($item['pid']!=0){ $tree[$item['pid']]['ch
8、ildren'][]=&$tree[$k]; } } print_r($tree); 打印结果如下: 代码如下:对党的认识也有了进一步的提高。才真正体会到了中国共产党的伟大、光荣和正确,更感到只有中国共产党是全中国最广大人民利益的忠实代表我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习
显示全部收起