利用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的String类代码
Apr 20 PHP
PHP中冒号、endif、endwhile、endfor使用介绍
Apr 28 PHP
php做下载文件的实现代码及文件名中乱码解决方法
Feb 03 PHP
PHP goto语句简介和使用实例
Mar 11 PHP
php生成百度sitemap站点地图类函数实例
Oct 17 PHP
php实现对两个数组进行减法操作的方法
Apr 17 PHP
解读PHP中的垃圾回收机制
Aug 10 PHP
php实现文章置顶功能的方法
Oct 20 PHP
PHP对称加密函数实现数据的加密解密
Oct 27 PHP
Centos 6.5系统下编译安装PHP 7.0.13的方法
Dec 19 PHP
快速解决PHP调用Word组件DCOM权限的问题
Dec 27 PHP
PHP实现发送微博消息功能完整示例
Dec 04 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开发GUI
2006/10/09 PHP
15个小时----从修改程序到自己些程序
2006/10/09 PHP
FCKeditor添加自定义按钮
2008/03/27 PHP
PHP mail 通过Windows的SMTP发送邮件失败的解决方案
2009/05/27 PHP
PHP中文乱码解决方案
2015/03/05 PHP
标准版Eclipse搭建PHP环境的详细步骤
2015/11/18 PHP
php文件操作小结(删除指定文件/获取文件夹下的文件名/读取文件夹下图片名)
2016/05/09 PHP
PHP实现无限分类的实现方法
2016/11/14 PHP
PHP+JS实现的实时搜索提示功能
2018/03/13 PHP
php tpl模板引擎定义与使用示例
2019/08/09 PHP
用php实现分页效果的示例代码
2020/12/10 PHP
jQuery 全选效果实现代码
2009/03/23 Javascript
javascript实现全角转半角的方法
2016/01/23 Javascript
JavaScript中利用jQuery绑定事件的几种方式小结
2016/03/06 Javascript
JavaScript实现九九乘法表的简单实例
2016/06/07 Javascript
第一次接触神奇的前端框架vue.js
2016/12/01 Javascript
Bootstrap基本插件学习笔记之轮播幻灯片(23)
2016/12/08 Javascript
js实现悬浮窗效果(支持拖动)
2017/03/09 Javascript
jQuery中用on绑定事件时需注意的事项
2017/03/19 Javascript
React Native使用fetch实现图片上传的示例代码
2018/03/07 Javascript
nodejs 简单实现动态html的方法
2018/05/12 NodeJs
小程序实现层叠卡片滑动效果
2019/08/26 Javascript
python+selenium开发环境搭建图文教程
2017/08/11 Python
Python Paramiko模块的使用实际案例
2018/02/01 Python
numpy.linspace 生成等差数组的方法
2018/07/02 Python
python版飞机大战代码分享
2018/11/20 Python
通过python扫描二维码/条形码并打印数据
2019/11/14 Python
Python函数参数定义及传递方式解析
2020/06/10 Python
Python wordcloud库安装方法总结
2020/12/31 Python
美国家用电器和电子产品商店:Abt
2016/09/06 全球购物
建筑公司文秘岗位职责
2013/11/29 职场文书
幼儿园教师岗位职责
2014/03/17 职场文书
家长会演讲稿
2014/04/26 职场文书
当幸福来敲门英文观后感
2015/06/01 职场文书
高中生社会实践心得体会
2016/01/14 职场文书
TypeScript实用技巧 Nominal Typing名义类型详解
2022/09/23 Javascript