利用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函数解决SQL injection
Oct 09 PHP
也谈php网站在线人数统计
Apr 09 PHP
php visitFile()遍历指定文件夹函数
Aug 21 PHP
PHP文件读写操作之文件读取方法详解
Jan 13 PHP
PHP优于Node.js的五大理由分享
Sep 15 PHP
PHP 使用pcntl和libevent 实现Timer功能
Oct 27 PHP
PHP根据传入参数合并多个JS和CSS文件的简单实现
Jun 13 PHP
php实现的DateDiff和DateAdd时间函数代码分享
Aug 16 PHP
php使用PDO执行SQL语句的方法分析
Feb 16 PHP
php出租房数据管理及搜索页面
May 23 PHP
[原创]PHP实现字节数Byte转换为KB、MB、GB、TB的方法
Aug 31 PHP
PDO::getAvailableDrivers讲解
Jan 28 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/11/18 PHP
php简单构造json多维数组的方法示例
2017/06/08 PHP
PHP数据分析引擎计算余弦相似度算法示例
2017/08/08 PHP
Laravel学习教程之request validation的编写
2017/10/25 PHP
javascript实现无限级select联动菜单
2015/01/02 Javascript
jQuery增加自定义函数的方法
2015/07/18 Javascript
配置Grunt的Task时通配符支持和动态生成文件名问题
2015/09/06 Javascript
jQuery控制DIV层实现由大到小,由远及近动画变化效果
2015/10/09 Javascript
JS中改变this指向的方法(call和apply、bind)
2016/03/26 Javascript
jQuery页面加载初始化的3种方法(推荐)
2016/06/02 Javascript
jquery实现网页定位导航
2016/08/23 Javascript
jquery+css3问卷答题卡翻页动画效果示例
2016/10/26 Javascript
js倒计时小实例(多次定时)
2016/12/08 Javascript
angularjs实现首页轮播图效果
2017/04/14 Javascript
详解AngularJs路由之Ui-router-resolve(预加载)
2017/06/13 Javascript
在Vue中使用echarts的实例代码(3种图)
2017/07/10 Javascript
vue2.0路由切换后页面滚动位置不变BUG的解决方法
2018/03/14 Javascript
React实现全局组件的Toast轻提示效果
2018/09/21 Javascript
js的新生代垃圾回收知识点总结
2019/08/22 Javascript
深入webpack打包原理及loader和plugin的实现
2020/05/06 Javascript
[47:39]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 LGD vs OPTIC
2018/03/31 DOTA
Python中SOAP项目的介绍及其在web开发中的应用
2015/04/14 Python
python同时给两个收件人发送邮件的方法
2015/04/30 Python
python图像常规操作
2017/11/11 Python
python进程间通信Queue工作过程详解
2019/11/01 Python
Anaconda3+tensorflow2.0.0+PyCharm安装与环境搭建(图文)
2020/02/18 Python
服务器端jupyter notebook映射到本地浏览器的操作
2020/04/14 Python
浅谈如何使用python抓取网页中的动态数据实现
2020/08/17 Python
个人求职信范文分享
2013/12/13 职场文书
技校毕业生个人学习的自我评价
2014/02/21 职场文书
毕业生就业推荐表自我鉴定
2014/03/20 职场文书
公司门卫岗位职责范本
2014/07/08 职场文书
电子商务优秀毕业生求职信
2014/07/11 职场文书
2014年学校办公室工作总结
2014/12/19 职场文书
如何使用Tkinter进行窗口的管理与设置
2021/06/30 Python
分析Python list操作为什么会错误
2021/11/17 Python