利用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 FPDF类库应用实现代码
Mar 20 PHP
php面向对象全攻略 (二) 实例化对象 使用对象成员
Sep 30 PHP
解析smarty 截取字符串函数 truncate的用法介绍
Jun 20 PHP
php调整服务器时间的方法
Apr 03 PHP
php获取、检查类名、函数名、方法名的函数方法
Jun 25 PHP
Zend Framework教程之Application用法实例详解
Mar 14 PHP
功能强大的php分页函数
Jul 20 PHP
PHP生成各种随机验证码的方法总结【附demo源码】
Jun 05 PHP
PHP实现将优酷土豆腾讯视频html地址转换成flash swf地址的方法
Aug 04 PHP
PHP调用其他文件中的类
Apr 02 PHP
PHP实现的猴王算法(猴子选大王)示例
Apr 30 PHP
Laravel5.5 视图 - 创建视图和数据传递示例
Oct 21 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中对于浮点型的数据需要用不同的方法解决
2014/03/11 PHP
使用PHPExcel操作Excel用法实例分析
2015/03/26 PHP
PHP中使用foreach()遍历二维数组的简单实例
2016/06/13 PHP
PHP分享图片的生成方法
2018/04/25 PHP
兼容ie和firefox js关闭代码
2008/12/11 Javascript
Prototype ObjectRange对象学习
2009/07/19 Javascript
基于jQuery的弹出框插件
2012/03/18 Javascript
JavaScript通过元素的ID和name设置样式
2014/07/08 Javascript
html的DOM中Event对象onblur事件用法实例
2015/01/21 Javascript
JavaScript获取表单内所有元素值的方法
2015/04/02 Javascript
JavaScript清空数组元素的两种方法简单比较
2015/07/10 Javascript
微信小程序 122100版本更新问题解决方案
2016/12/22 Javascript
Javascript中的神器——Promise
2017/02/08 Javascript
js+canvas实现动态吃豆人效果
2017/03/22 Javascript
jQuery EasyUI开发技巧总结
2017/09/26 jQuery
Vue 进入/离开动画效果
2017/12/26 Javascript
Vue 组件传值几种常用方法【总结】
2018/05/28 Javascript
Node.js中Koa2在控制台输出请求日志的方法示例
2019/05/02 Javascript
p5.js码绘“跳动的小正方形”的实现代码
2019/10/22 Javascript
javascript设计模式 ? 代理模式原理与用法实例分析
2020/04/16 Javascript
vue中使用vue-pdf的方法详解
2020/09/05 Javascript
[04:19]完美世界携手游戏风云打造 卡尔工作室模型介绍篇
2013/04/24 DOTA
python使用smtplib模块通过gmail实现邮件发送的方法
2015/05/08 Python
Python基于递归算法实现的走迷宫问题
2017/08/04 Python
Python基于递归和非递归算法求两个数最大公约数、最小公倍数示例
2018/05/21 Python
Django压缩静态文件的实现方法详析
2018/08/26 Python
在macOS上搭建python环境的实现方法
2019/08/13 Python
List、Map、Set三个接口,存取元素时,各有什么特点?
2015/09/27 面试题
大学生军训广播稿
2014/01/24 职场文书
《藤野先生》教学反思
2014/02/19 职场文书
会务接待方案
2014/02/27 职场文书
安全责任书范本
2014/04/15 职场文书
职务说明书范文
2014/05/07 职场文书
2015大学生求职信范文
2015/03/20 职场文书
2015年电教工作总结
2015/05/26 职场文书
优秀共产党员事迹材料2016
2016/02/29 职场文书