利用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正确解析UTF-8字符串技巧应用
Nov 07 PHP
Yii的CDbCriteria查询条件用法实例
Dec 04 PHP
php模拟服务器实现autoindex效果的方法
Mar 10 PHP
php将字符串全部转换成大写或者小写的方法
Mar 17 PHP
使用PHP进行微信公众平台开发的示例
Aug 21 PHP
PHP递归实现层级树状展开
Apr 01 PHP
PHP微信公众号自动发送红包API
Jun 01 PHP
详解PHP防止直接访问.php 文件的实现方法
Jul 28 PHP
phpStudy2016 配置多个域名期间遇到的问题小结
Oct 19 PHP
swoole_process实现进程池的方法示例
Oct 29 PHP
laravel 实现登陆后返回登陆前的页面方法
Oct 03 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
Dec 18 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面向对象全攻略 (十二) 抽象方法和抽象类
2009/09/30 PHP
PHP管理内存函数 memory_get_usage()使用介绍
2012/09/23 PHP
PHP读取Excel类文件
2017/05/15 PHP
thinkPHP3.2.2框架行为扩展及demo示例
2018/06/19 PHP
TP5框架页面跳转样式操作示例
2020/04/05 PHP
分享几种好用的PHP自定义加密函数(可逆/不可逆)
2020/09/15 PHP
jQuery Clone Bug解决代码
2010/12/22 Javascript
jquery select多选框的左右移动 具体实现代码
2013/07/03 Javascript
JQueryiframe页面操作父页面中的元素与方法(实例讲解)
2013/11/19 Javascript
jQuery动态改变图片显示大小(修改版)的实现思路及代码
2013/12/24 Javascript
情人节单身的我是如何在敲完代码之后收到12束玫瑰的(javascript)
2015/08/21 Javascript
jquery实现点击弹出带标题栏的弹出层(从右上角飞入)效果
2015/09/19 Javascript
JS动态日期时间的获取方法
2015/09/28 Javascript
浅谈事件冒泡、事件委托、jQuery元素节点操作、滚轮事件与函数节流
2017/07/22 jQuery
vue axios同步请求解决方案
2017/09/29 Javascript
React实践之Tree组件的使用方法
2017/09/30 Javascript
Vue.js做select下拉列表的实例(ul-li标签仿select标签)
2018/03/02 Javascript
vue2.0 循环遍历加载不同图片的方法
2018/03/06 Javascript
Vue 页面跳转不用router-link的实现代码
2018/04/12 Javascript
jquery实现搜索框功能实例详解
2018/07/23 jQuery
[01:46]2018完美盛典章节片——坚守
2018/12/17 DOTA
python中精确输出JSON浮点数的方法
2014/04/18 Python
Python编程产生非均匀随机数的几种方法代码分享
2017/12/13 Python
python抓取网页中链接的静态图片
2018/01/29 Python
Python实现查找二叉搜索树第k大的节点功能示例
2019/01/24 Python
用python打开摄像头并把图像传回qq邮箱(Pyinstaller打包)
2020/05/17 Python
解决TensorFlow调用Keras库函数存在的问题
2020/07/06 Python
python 利用opencv实现图像网络传输
2020/11/12 Python
韩国著名的在线综合购物网站:Akmall
2016/08/07 全球购物
美国体育用品商店:Academy Sports + Outdoors
2020/01/04 全球购物
定义一结构体变量,用其表示点坐标,并输入两点坐标,求两点之间的距离
2015/08/17 面试题
补充协议书范本
2014/04/23 职场文书
2014中学教师节广播稿
2014/09/10 职场文书
村委会贫困证明范文
2014/09/21 职场文书
房租涨价通知
2015/04/23 职场文书
结婚典礼主持词
2015/06/29 职场文书