利用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重新实现PHP脚本引擎内置函数
Mar 06 PHP
基于Snoopy的PHP近似完美获取网站编码的代码
Oct 23 PHP
Destoon旺旺无法正常显示,点击提示“会员名不存在”的解决办法
Jun 21 PHP
php实现与erlang的二进制通讯实例解析
Jul 23 PHP
PHP队列用法实例
Nov 05 PHP
php单态设计模式(单例模式)实例
Nov 18 PHP
php常用的url处理函数总结
Nov 19 PHP
CI框架无限级分类+递归的实现代码
Nov 01 PHP
PHP实现动态获取函数参数的方法示例
Apr 02 PHP
PHP后台备份MySQL数据库的源码实例
Mar 18 PHP
PHP大文件切割上传功能实例分析
Jul 01 PHP
php基于协程实现异步的方法分析
Jul 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
谈谈新手如何学习PHP
2006/12/14 PHP
利用PHP生成静态HTML文档的原理
2012/10/29 PHP
memcache命令启动参数中文解释
2014/01/13 PHP
PHP实现长文章分页实例代码(附源码)
2016/02/03 PHP
PHP使用PDO实现mysql防注入功能详解
2019/12/20 PHP
js 操作符实例代码
2009/10/24 Javascript
Juqery Html(),append()等方法的Bug解决方法
2010/12/13 Javascript
JS获取农历日期具体实例
2013/11/14 Javascript
javascript的回调函数应用示例
2014/02/20 Javascript
使用jquery中height()方法获取各种高度大全
2014/04/02 Javascript
JavaScript函数获取事件源的小例子
2014/05/14 Javascript
基于MVC+EasyUI的web开发框架之使用云打印控件C-Lodop打印页面或套打报关运单信息
2016/08/29 Javascript
利用Mongoose让JSON数据直接插入或更新到MongoDB
2017/05/03 Javascript
vue复合组件实现注册表单功能
2017/11/06 Javascript
Vue中使用ElementUI使用第三方图标库iconfont的示例
2018/10/11 Javascript
微信小程序实现多个按钮的颜色状态转换
2019/02/15 Javascript
Vue封装Axios请求和拦截器的步骤
2020/09/16 Javascript
微信小程序接入vant Weapp组件的详细步骤
2020/10/28 Javascript
python实现定时同步本机与北京时间的方法
2015/03/24 Python
Python 实现淘宝秒杀的示例代码
2018/01/02 Python
对Python 窗体(tkinter)文本编辑器(Text)详解
2018/10/11 Python
Python求正态分布曲线下面积实例
2019/11/20 Python
python实现最速下降法
2020/03/24 Python
Numpy 多维数据数组的实现
2020/06/18 Python
使用pandas实现筛选出指定列值所对应的行
2020/12/13 Python
HTML5中meta属性的使用方法
2016/02/29 HTML / CSS
《小儿垂钓》教学反思
2014/02/23 职场文书
清明节扫墓活动方案
2014/03/02 职场文书
HTTP中的Content-type详解
2022/01/18 HTML / CSS
Redis+Lua脚本实现计数器接口防刷功能(升级版)
2022/02/12 Redis
叶县这家生产军用电台的兵工厂,人称“四机部”,走出一上将
2022/02/18 无线电
你真的会用Mysql的explain吗
2022/03/31 MySQL
关于Python使用turtle库画任意图的问题
2022/04/01 Python
Tomcat项目启动失败的原因和解决办法
2022/04/20 Servers
Mysql将字符串按照指定字符分割的正确方法
2022/05/30 MySQL
讨论nginx location 顺序问题
2022/05/30 Servers