利用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 相关文章推荐
基于curl数据采集之单页面并行采集函数get_htmls的使用
Apr 28 PHP
PHP连接MySQL的2种方法小结以及防止乱码
Mar 11 PHP
ThinkPHP CURD方法之page方法详解
Jun 18 PHP
YII路径的用法总结
Jul 09 PHP
php使用Jpgraph绘制简单X-Y坐标图的方法
Jun 10 PHP
WordPress中用于创建以及获取侧边栏的PHP函数讲解
Dec 29 PHP
浅谈php和js中json的编码和解码
Oct 24 PHP
php_pdo 预处理语句详解
Nov 21 PHP
在IIS下安装PHP扩展的方法(超简单)
Apr 10 PHP
Laravel关联模型中过滤结果为空的结果集(has和with区别)
Oct 18 PHP
php基于 swoole 实现的异步处理任务功能示例
Aug 13 PHP
laravel框架中视图的基本使用方法分析
Nov 23 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/07/07 PHP
php中的boolean(布尔)类型详解
2013/10/28 PHP
基于JQuery+PHP编写砸金蛋中奖程序
2015/09/08 PHP
JavaScript 异步调用框架 (Part 3 - 代码实现)
2009/08/04 Javascript
JQuery开发的数独游戏代码
2010/10/29 Javascript
分享2个jQuery插件--jquery.fileupload与artdialog
2014/12/26 Javascript
javascript将数字转换整数金额大写的方法
2015/01/27 Javascript
jquery+javascript编写国籍控件
2015/02/12 Javascript
jquery实现简单的轮换出现效果实例
2015/07/23 Javascript
修复jQuery tablesorter无法正确排序的bug(加千分位数字后)
2016/03/30 Javascript
使用jquery提交form表单并自定义action的方法
2016/05/25 Javascript
js实现控制textarea输入字符串的个数,鼠标按下抬起判断输入字符数
2016/10/25 Javascript
详解Bootstrap各式各样的按钮(推荐)
2016/12/13 Javascript
jQuery学习笔记之入门
2016/12/14 Javascript
AngularJS中使用ngModal模态框实例
2017/05/27 Javascript
JavaScript用二分法查找数据的实例代码
2017/06/17 Javascript
详解vuex的简单使用
2018/03/12 Javascript
React Component存在的几种形式详解
2018/11/06 Javascript
js图数据结构处理 迪杰斯特拉算法代码实例
2019/09/11 Javascript
vue开发拖拽进度条滑动组件
2019/09/21 Javascript
微信小程序实现Swiper轮播图效果
2019/11/22 Javascript
Vue父子组件传值的一些坑
2020/09/16 Javascript
python 遍历列表提取下标和值的实例
2018/12/25 Python
在python下使用tensorflow判断是否存在文件夹的实例
2019/06/10 Python
Python使用os.listdir和os.walk获取文件路径
2020/05/21 Python
松本清官方海外旗舰店:日本最大的药妆连锁店
2017/11/21 全球购物
写好求职信第一句话的技巧
2013/10/26 职场文书
小学生获奖感言范文
2014/02/02 职场文书
《我为你骄傲》教学反思
2014/02/20 职场文书
房地产财务部员工岗位职责
2014/03/12 职场文书
应聘英语教师求职信
2014/04/24 职场文书
2015年人事科工作总结
2015/04/28 职场文书
力克胡哲观后感
2015/06/10 职场文书
2019年中,最受大众欢迎的6本新书
2019/08/07 职场文书
Mysql binlog日志文件过大的解决
2021/10/05 MySQL
Go gorilla securecookie库的安装使用详解
2022/08/14 Golang