利用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 设计模式之观察者模式介绍
Feb 22 PHP
PHP中::、-&amp;gt;、self、$this几种操作符的区别介绍
Apr 24 PHP
解析php中array_merge与array+array的区别
Jun 21 PHP
PHP随机生成随机个数的字母组合示例
Jan 14 PHP
php中print(),print_r(),echo()的区别详解
Dec 01 PHP
codeigniter显示所有脚本执行时间的方法
Mar 21 PHP
PHP中preg_match函数正则匹配的字符串长度问题
May 27 PHP
wamp服务器访问php非常缓慢的解决过程
Jul 01 PHP
php版微信js-sdk支付接口类用法示例
Oct 12 PHP
YII框架学习笔记之命名空间、操作响应与视图操作示例
Apr 30 PHP
php判断/计算闰年的方法小结【三种方法】
Jul 06 PHP
PHP PDO和消息队列的个人理解与应用实例分析
Nov 25 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导出Excel的小经验 完美解决乱码问题
2013/06/10 PHP
PHP7新增运算符用法实例分析
2016/09/26 PHP
php实现表单提交上传文件功能
2018/05/28 PHP
PHP中一个有趣的preg_replace函数详解
2018/08/15 PHP
php文件操作之文件写入字符串、数组的方法分析
2019/04/15 PHP
javascript removeChild 使用注意事项
2009/04/11 Javascript
javascript 面向对象编程  function是方法(函数)
2009/09/17 Javascript
Iframe实现跨浏览器自适应高度解决方法
2014/09/02 Javascript
jQuery满屏焦点图左右滚动特效代码分享
2015/09/07 Javascript
JavaScript的==运算详解
2016/07/20 Javascript
vue子组件使用自定义事件向父组件传递数据
2017/05/27 Javascript
JS轮播图实现简单代码
2021/02/19 Javascript
推荐VSCode 上特别好用的 Vue 插件之vetur
2017/09/14 Javascript
vue和webpack安装命令详解
2018/06/15 Javascript
layui 监听表格复选框选中值的方法
2018/08/15 Javascript
微信小程序实现蒙版弹窗效果
2018/11/01 Javascript
vue实现的微信机器人聊天功能案例【附源码下载】
2019/02/18 Javascript
[02:57]DOTA2英雄基础教程 风行者
2014/01/16 DOTA
[42:39]老党炸弹人试玩视频
2014/09/03 DOTA
Perl中著名的Schwartzian转换问题解决实现
2015/06/02 Python
浅谈Python批处理文件夹中的txt文件
2019/03/11 Python
python创建学生成绩管理系统
2019/11/22 Python
基于Tensorflow的MNIST手写数字识别分类
2020/06/17 Python
python中如何设置代码自动提示
2020/07/15 Python
HTML文本属性&amp;颜色控制属性的实现
2019/12/17 HTML / CSS
意大利奢华内衣制造商:Cosabella
2017/08/29 全球购物
英国网上购买肉类网站:Great British Meat
2018/10/17 全球购物
西安启天科技有限公司网络工程师面试题笔试题
2016/06/12 面试题
感恩节红领巾广播稿
2014/02/11 职场文书
《冬阳童年骆驼队》教学反思
2014/04/15 职场文书
2016年秋季开学典礼新闻稿
2015/11/25 职场文书
MySQL创建索引需要了解的
2021/04/08 MySQL
python opencv通过按键采集图片源码
2021/05/20 Python
一篇文章弄懂Python关键字、标识符和变量
2021/07/15 Python
CentOS8.4安装Redis6.2.6的详细过程
2021/11/20 Redis
 Python 中 logging 模块使用详情
2022/03/03 Python