利用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模块 Memcached功能多于Memcache
Jun 14 PHP
PHP安全配置详细说明
Sep 26 PHP
Linux fgetcsv取得的数组元素为空字符串的解决方法
Nov 25 PHP
PHP设计模式之责任链模式的深入解析
Jun 13 PHP
PHP调用VC编写的COM组件实例
Mar 29 PHP
百万级别知乎用户数据抓取与分析之PHP开发
Sep 28 PHP
两种php实现图片上传的方法
Jan 22 PHP
ThinkPHP5实现作业管理系统中处理学生未交作业与已交作业信息的方法
Nov 12 PHP
CI框架封装的常用图像处理方法(缩略图,水印,旋转,上传等)
Nov 22 PHP
php 实现Hash表功能实例详解
Nov 29 PHP
Laravel实现定时任务的示例代码
Aug 10 PHP
Yii框架布局文件的动态切换操作示例
Nov 11 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闭包(Closure)使用详解
2013/05/02 PHP
Thinkphp的volist标签嵌套循环使用教程
2014/07/08 PHP
php通过sort()函数给数组排序的方法
2015/03/18 PHP
PHP的几个常用加密函数
2016/02/03 PHP
理解php依赖注入和控制反转
2016/05/11 PHP
javascript cookies 设置、读取、删除实例代码
2010/04/12 Javascript
javascript开发中因空格引发的错误
2010/11/08 Javascript
js实现鼠标拖动图片并兼容IE/FF火狐/谷歌等主流浏览器
2013/06/06 Javascript
JavaScript 模块化编程(笔记)
2015/04/08 Javascript
简介JavaScript中的sub()方法的使用
2015/06/08 Javascript
javascript与Python快速排序实例对比
2015/08/10 Javascript
JavaScript函数的一些注意要点小结及js匿名函数
2015/11/10 Javascript
判断JS对象是否拥有某属性的方法推荐
2016/05/12 Javascript
vue日期组件 支持vue1.0和2.0
2017/01/09 Javascript
JavaScript实现的可变动态数字键盘控件方式实例代码
2017/07/15 Javascript
基于Vue.js 2.0实现百度搜索框效果
2020/12/28 Javascript
浅析Visual Studio Code断点调试Vue
2018/02/27 Javascript
webpack4 配置 ssr 环境遇到“document is not defined”
2019/10/24 Javascript
解决vue使用vant轮播组件swipe + flex时文字抖动问题
2021/01/07 Vue.js
[01:11]回顾历届DOTA2国际邀请赛中国区预选赛
2017/06/26 DOTA
python中使用smtplib和email模块发送邮件实例
2014/04/22 Python
python代码制作configure文件示例
2014/07/28 Python
用Python的Flask框架结合MySQL写一个内存监控程序
2015/11/07 Python
再谈Python中的字符串与字符编码(推荐)
2016/12/14 Python
python 文件查找及内容匹配方法
2018/10/25 Python
在Pycharm中使用GitHub的方法步骤
2019/06/13 Python
tensorflow没有output结点,存储成pb文件的例子
2020/01/04 Python
MATCHESFASHION澳大利亚/亚太地区:英国时尚奢侈品电商
2020/01/14 全球购物
英文版区域经理求职信
2013/10/23 职场文书
秋季运动会广播稿大全
2014/02/17 职场文书
优秀广告词大全
2014/03/19 职场文书
自愿解除劳动合同协议书
2014/09/11 职场文书
捐助倡议书
2015/01/19 职场文书
培训讲师开场白
2015/06/01 职场文书
nginx.conf配置文件结构小结
2022/04/08 Servers
Python绘制散点图之可视化神器pyecharts
2022/07/07 Python