利用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 相关文章推荐
桌面中心(二)数据库写入
Oct 09 PHP
PHP strtr() 函数使用说明
Nov 21 PHP
php中一个完整表单处理实现代码
Nov 10 PHP
php单例模式实现(对象只被创建一次)
Dec 05 PHP
用PHP解决的一个栈的面试题
Jul 02 PHP
php实现根据字符串生成对应数组的方法
Sep 22 PHP
php计算一个文件大小的方法
Mar 30 PHP
php unicode编码和字符串互转的方法
Aug 12 PHP
PHP中ajax无刷新上传图片与图片下载功能
Feb 21 PHP
详解PHP神奇又有用的Trait
Mar 25 PHP
tp5 sum某个字段相加得到总数的例子
Oct 18 PHP
PHPstorm激活码2020年5月13日亲测有效
Sep 17 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
网页游戏开发入门教程三(简单程序应用)
2009/11/02 PHP
把1316这个数表示成两个数的和,其中一个为13的倍数,另一个是11的倍数,求这两个数。
2011/06/24 PHP
php实现对文件压缩简单的方法
2019/09/29 PHP
几个比较经典常用的jQuery小技巧
2010/03/01 Javascript
javascript+mapbar实现地图定位
2010/04/09 Javascript
js函数排序的实例代码
2013/07/01 Javascript
深入理解JavaScript中的传值与传引用
2013/12/09 Javascript
js 判断图片是否加载完以及实现图片的预下载
2014/08/14 Javascript
JQuery中节点遍历方法实例
2015/05/18 Javascript
javascript组合使用构造函数模式和原型模式实例
2015/06/04 Javascript
JS复制对应id的内容到粘贴板(Ctrl+C效果)
2017/01/23 Javascript
JavaScript利用fetch实现异步请求的方法实例
2017/07/26 Javascript
Vue.js+Layer表格数据绑定与实现更新的实例
2018/03/07 Javascript
基于Bootstrap下拉框插件bootstrap-select使用方法详解
2018/08/07 Javascript
对Vue- 动态元素属性及v-bind和v-model的区别详解
2018/08/27 Javascript
Vue 事件处理操作实例详解
2019/03/05 Javascript
vue 开发之路由配置方法详解
2019/12/02 Javascript
python实现telnet客户端的方法
2015/04/15 Python
恢复百度云盘本地误删的文件脚本(简单方法)
2017/10/21 Python
python 输出上个月的月末日期实例
2018/04/11 Python
pycharm新建一个python工程步骤
2019/07/16 Python
pytorch中图像的数据格式实例
2020/02/11 Python
拿来就用!Python批量合并PDF的示例代码
2020/08/10 Python
解决python打开https出现certificate verify failed的问题
2020/09/03 Python
Django日志及中间件模块应用案例
2020/09/10 Python
Python random模块的使用示例
2020/10/10 Python
HTML5实现分享到微信好友朋友圈QQ好友QQ空间微博二维码功能
2018/01/03 HTML / CSS
某科技软件测试面试题
2013/05/19 面试题
益达广告词
2014/03/14 职场文书
给校长的建议书300字
2014/05/16 职场文书
全国税务系统先进集体事迹材料
2014/05/19 职场文书
高一学年自我鉴定范文(3篇)
2014/09/26 职场文书
合作协议书范本
2014/10/25 职场文书
导游词之岳阳楼
2019/09/25 职场文书
PHP中strval()函数实例用法
2021/06/07 PHP
django中websocket的具体使用
2022/01/22 Python