利用php递归实现无限分类 格式化数组的详解


Posted in PHP onJune 08, 2013

我们要做一个商品的无限分类
首先数据库字段为:
id ----------商品主键id
fid ---------- 商品父id
name ---------- 商品名
最后输出的数组格式为

<PRE class=php name="code"><PRE class=php name="code">array(
 0=>array(
  'id'=>1,
  'fid'=>0,
  'name'=>'法国货'
  'child'=>array(
   0=>array( 
    'id'=>12,
    'fid'=>1,
    'name'=>'香水'
    'child'=>array(
     0=>array(
      'id'=>34,
      'fid'=>12,
      'name'=>'女用香水'
     )
    )
   ),
   1=>array(
    'id'=>13,
    'fid'=>1,
    'name'=>'笔记本'
    'child'=>NUll
   )
  )
 ),
 1=>array(),    //格式同上我就不再重复写了 没什么意义
 2=>array()
)</PRE><BR>
<PRE></PRE>
<PRE></PRE>
php代码:
<P></P>
<P></P>
<PRE class=php name="code"><?php
//数据库我用的mysql PDO  但是整个思路又是一样的
$conn=mysql_connect('localhost','root','123');
if(mysql_errno()){
 printf('连接失败'.mysql_error());
}
mysql_select_db('edeng');
mysql_set_charset('utf8');
/*
 *递归函数
 *@param id 要查询fid=$id的所有子类  这里将$id的默认值为设为0  是因为我在数据库中将最顶层的类别的fid设置为0
 */
function get_array($id=0){
 $sql="select id,fid,cname from e_cat where fid= $id";
 $result=mysql_query($sql);
 $arr=array();
 if($result && mysql_affected_rows()){
  while($rows=mysql_fetch_assoc($result)){   $rows['child']=get_array($rows['id']);
   $arr[] = $rows;
  }
  return $arr;
 }
} 
echo '<pre>';
$result = get_array();
print_r($result);
</PRE><BR>
<BR>
<P></P>
<P> </P>
<P>函数首先查询出所有fid为0的类</P>
<P>通过while逐个循环进行回调查找fid为当前类的id的子类</P>
<P><BR>
</P>
<P><BR>
</P>
<BR>
<BR>
<PRE></PRE>
</PRE>

PHP 相关文章推荐
PHP脚本的10个技巧(4)
Oct 09 PHP
PHP图片验证码制作实现分享(全)
May 10 PHP
Windows下部署Apache+PHP+MySQL运行环境实战
Aug 31 PHP
浅析php变量修饰符static的使用
Jun 28 PHP
浅析echo(),print(),print_r(),return之间的区别
Nov 27 PHP
thinkPHP实现表单自动验证
Dec 24 PHP
学习php设计模式 php实现装饰器模式(decorator)
Dec 07 PHP
cakephp2.X多表联合查询join及使用分页查询的方法
Feb 23 PHP
PHP计算近1年的所有月份
Mar 13 PHP
详解php框架Yaf路由重写
Jun 20 PHP
如何直接访问php实例对象中的private属性详解
Oct 12 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
Mar 09 PHP
如何利用php array_multisort函数 对数据库结果进行复杂排序
Jun 08 #PHP
php引用返回与取消引用的详解
Jun 08 #PHP
PHP stripos()函数及注意事项的分析
Jun 08 #PHP
php自动加载机制的深入分析
Jun 08 #PHP
深入理解curl类,可用于模拟get,post和curl下载
Jun 08 #PHP
coreseek 搜索英文的问题详解
Jun 08 #PHP
探讨如何在php168_cms中提取验证码
Jun 08 #PHP
You might like
基于PHP+Ajax实现表单验证的详解
2013/06/25 PHP
PHP实现今天是星期几的几种写法
2013/09/26 PHP
PHP生成唯一订单号
2015/07/05 PHP
又十个超级有用的PHP代码片段
2015/09/24 PHP
PHP+MySql+jQuery实现的&quot;顶&quot;和&quot;踩&quot;投票功能
2016/05/21 PHP
php验证码生成器
2017/05/24 PHP
jQuery Clone Bug解决代码
2010/12/22 Javascript
javascript操作select元素实例分析
2015/03/27 Javascript
jquery单击文字或图片内容放大并居中显示
2017/06/23 jQuery
vue非父子组件通信问题及解决方法
2018/06/11 Javascript
深入浅析var,let,const的异同点
2018/08/07 Javascript
详解Vue+axios+Node+express实现文件上传(用户头像上传)
2018/08/10 Javascript
angular1.x ui-route传参的三种写法小结
2018/08/31 Javascript
Nodejs异步流程框架async的方法
2019/06/07 NodeJs
JS实现利用闭包判断Dom元素和滚动条的方向示例
2019/08/26 Javascript
解决vue cli4升级sass-loader(v8)后报错问题
2020/07/30 Javascript
解决vue项目 build之后资源文件找不到的问题
2020/09/12 Javascript
微信小程序实现翻牌抽奖动画
2020/09/21 Javascript
Vue看了就会的8个小技巧
2021/01/21 Vue.js
[01:02:46]VGJ.S vs NB 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python学习入门之区块链详解
2017/07/25 Python
python使用jieba实现中文分词去停用词方法示例
2018/03/11 Python
对Python中的@classmethod用法详解
2018/04/21 Python
在PyCharm环境中使用Jupyter Notebook的两种方法总结
2018/05/24 Python
python3实现小球转动抽奖小游戏
2020/04/15 Python
12个步骤教你理解Python装饰器
2019/07/01 Python
解决Python3 控制台输出InsecureRequestWarning问题
2019/07/15 Python
详解Matplotlib绘图之属性设置
2019/08/23 Python
Python实现PyPDF2处理PDF文件的方法示例
2019/09/25 Python
html5的pushstate以及监听浏览器返回事件的实现
2020/08/11 HTML / CSS
德国机车企业:FC-Moto
2017/10/27 全球购物
汽车维修专业自荐书
2014/05/26 职场文书
2014年采购员工作总结
2014/11/18 职场文书
2014年话务员工作总结
2014/11/19 职场文书
汽车转让协议书
2015/01/29 职场文书
PYTHON InceptionV3模型的复现详解
2022/05/06 Python