利用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 相关文章推荐
图象函数中的中文显示
Oct 09 PHP
PHP使用数组实现队列
Feb 05 PHP
PHP获取搜索引擎关键字来源的函数(支持百度和谷歌等搜索引擎)
Oct 03 PHP
解析获取优酷视频真实下载地址的PHP源代码
Jun 26 PHP
PHP输出当前进程所有变量/常量/模块/函数/类的示例
Nov 07 PHP
CI框架简单邮件发送类实例
May 18 PHP
Yii2主题(Theme)用法详解
Jul 23 PHP
PHP 等比例缩放图片详解及实例代码
Sep 18 PHP
PHP数组内存利用率低和弱类型详细解读
Aug 10 PHP
php实现微信原生支付(扫码支付)功能
May 30 PHP
yii2中关于加密解密的那些事儿
Jun 12 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
Jun 16 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
ajax完美实现两个网页 分页功能的实例代码
2013/04/16 PHP
php switch语句多个值匹配同一代码块应用示例
2014/07/29 PHP
thinkphp下MySQL数据库读写分离代码剖析
2017/04/18 PHP
thinkPHP中钩子的使用方法实例分析
2017/11/16 PHP
Ajax+PHP实现的模拟进度条功能示例
2019/02/11 PHP
jQuery)扩展jQuery系列之一 模拟alert,confirm(一)
2010/12/04 Javascript
浅析js封装和作用域
2013/07/09 Javascript
Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
2013/11/14 Javascript
z-blog SyntaxHighlighter 长代码无法换行解决办法(jquery)
2014/11/16 Javascript
AngularJS基础知识笔记之过滤器
2015/05/10 Javascript
JS实现将数字金额转换为大写人民币汉字的方法
2016/08/02 Javascript
详解JS去重及字符串奇数位小写转大写
2016/12/29 Javascript
JS SetInterval 代码实现页面轮询
2017/08/11 Javascript
Angularjs过滤器实现动态搜索与排序功能示例
2017/12/13 Javascript
微信开发之微信jssdk录音功能开发示例
2018/10/22 Javascript
JS的时间格式化和时间戳转换函数示例详解
2020/07/27 Javascript
浅谈vue中使用编辑器vue-quill-editor踩过的坑
2020/08/03 Javascript
Python的ORM框架SQLAlchemy入门教程
2014/04/28 Python
Python基础之函数用法实例详解
2014/09/10 Python
人生苦短我用python python如何快速入门?
2018/03/12 Python
使用Python的Dataframe取两列时间值相差一年的所有行方法
2018/07/10 Python
python斐波那契数列的计算方法
2018/09/27 Python
python 利用pandas将arff文件转csv文件的方法
2019/02/12 Python
python数据预处理之数据标准化的几种处理方式
2019/07/17 Python
django foreignkey外键使用的例子 相当于left join
2019/08/06 Python
Python2和Python3中@abstractmethod使用方法
2020/02/04 Python
python使用requests库爬取拉勾网招聘信息的实现
2020/11/20 Python
毕业生多媒体设计求职信
2013/10/12 职场文书
迎元旦广播稿
2014/02/22 职场文书
党员岗位承诺口号大全
2014/03/28 职场文书
贷款委托书范本
2014/04/08 职场文书
倡议书作文
2015/01/19 职场文书
安全第一课观后感
2015/06/18 职场文书
公司转让协议书
2016/03/19 职场文书
redis不能访问本机真实ip地址的解决方案
2021/07/07 Redis
在 HTML 页面中使用 React的场景分析
2022/01/18 Javascript