利用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 相关文章推荐
ADODB结合SMARTY使用~超级强
Nov 25 PHP
详解:――如何将图片储存在数据库里
Dec 05 PHP
用php实现的下载css文件中的图片的代码
Feb 08 PHP
PHP flock 文件锁详细介绍
Dec 29 PHP
php处理文件的小例子(解压缩,删除目录)
Feb 03 PHP
深入分析php中接口与抽象类的区别
Jun 08 PHP
PHP限制页面只能在微信自带浏览器访问的代码
Jan 15 PHP
回帖脱衣服的图片实现代码
Feb 15 PHP
Laravel 5框架学习之用户认证
Apr 09 PHP
PHP+Ajax无刷新带进度条图片上传示例
Feb 08 PHP
ThinkPHP实现生成和校验验证码功能
Apr 28 PHP
PHP删除数组中指定值的元素常用方法实例分析【4种方法】
Aug 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系统流量分析的程序
2006/10/09 PHP
PHP与MySQL交互使用详解
2006/10/09 PHP
PHP利用func_get_args和func_num_args函数实现函数重载实例
2014/11/12 PHP
php递归遍历删除文件的方法
2015/04/17 PHP
thinkphp在低版本Nginx 下支持PATHINFO的方法分享
2016/05/27 PHP
Yii2框架操作数据库的方法分析【以mysql为例】
2019/05/27 PHP
Jquery命名冲突解决的五种方案分享
2012/03/16 Javascript
封装了一个支持匿名函数的Javascript事件监听器
2014/06/05 Javascript
使用jsonp完美解决跨域问题
2014/11/27 Javascript
JQuery DIV 动态隐藏和显示的方法
2016/06/23 Javascript
更靠谱的H5横竖屏检测方法(js代码)
2016/09/13 Javascript
再谈javascript常见错误及解决方法
2016/09/16 Javascript
jQuery Easyui datagrid editor为combobox时指定数据源实例
2016/12/19 Javascript
js select下拉联动 更具级联性!
2020/04/17 Javascript
js仿小米手机上下滑动效果
2017/02/05 Javascript
教你快速搭建Node.Js服务器的方法教程
2017/03/30 Javascript
ES6入门教程之Class和Module详解
2017/05/17 Javascript
纯js实现的积木(div层)拖动功能示例
2017/07/19 Javascript
JavaScript正则表达式校验与递归函数实际应用实例解析
2017/08/04 Javascript
JavaScript惰性载入函数实例分析
2019/03/27 Javascript
js实现跟随鼠标移动的小球
2019/08/26 Javascript
vue实现图片懒加载的方法分析
2020/02/05 Javascript
jquery实现简单自动轮播图效果
2020/07/29 jQuery
小程序实现列表展开收起效果
2020/07/29 Javascript
[06:09]辉夜杯主赛事开幕式
2015/12/25 DOTA
Python实现获取操作系统版本信息方法
2015/04/08 Python
详解Python函数可变参数定义及其参数传递方式
2017/08/02 Python
Python3中类、模块、错误与异常、文件的简易教程
2017/11/20 Python
Python 列表中的修改、添加和删除元素的实现
2020/06/11 Python
澳洲在线厨具商店:Kitchen Style
2018/05/05 全球购物
什么是lambda函数
2013/09/17 面试题
应届毕业生自荐信例文
2014/02/26 职场文书
党建示范点实施方案
2014/03/12 职场文书
幼儿园托班开学寄语(2015秋季)
2015/05/27 职场文书
学会感恩主题班会
2015/08/12 职场文书
Shell中的单中括号和双中括号的用法详解
2022/12/24 Servers