php无限分类
2015-10-29 16:33
561 查看
关于无限分类是在兄弟连的视频中看过,知道基本思想,感觉很简单,自己肯定会;经过电魂笔试后,才发现看似简单的题目不经过自己亲自做一遍,是不知道自己是不是真正会做。
基本思想是用递归实现,但是就这么个简单的算法我调试了一个上午(用PHP写的),始终没找到自己的错误,最后才发现是因为var_dump()打印数组的时候,当数组过多或者维度过大的时候,会以...号取代,也就是不显示,我一直以为...是空数组的意思,真是无语。在网上找到了完全显示的方法,下面贴下链接:
http://blog.sina.com.cn/s/blog_461c24d50101h62x.html
![](http://img.blog.csdn.net/20151029163239275?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
1.数据库的设计:
至少三个字段(id,pid,name),下面是我的数据库设计
![](http://img.blog.csdn.net/20151029163529676?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
2.接下来就是PHP代码部分:
3.查看结果:
基本思想是用递归实现,但是就这么个简单的算法我调试了一个上午(用PHP写的),始终没找到自己的错误,最后才发现是因为var_dump()打印数组的时候,当数组过多或者维度过大的时候,会以...号取代,也就是不显示,我一直以为...是空数组的意思,真是无语。在网上找到了完全显示的方法,下面贴下链接:
http://blog.sina.com.cn/s/blog_461c24d50101h62x.html
1.数据库的设计:
至少三个字段(id,pid,name),下面是我的数据库设计
2.接下来就是PHP代码部分:
<?php $link=mysql_connect("localhost","root",""); mysql_select_db("test",$link); $sql="select * from classfiy where id"; $result=mysql_query($sql); $assoc=array(); while($row=mysql_fetch_assoc($result)) { array_push($assoc,$row); } $a=fun($assoc,0); $str=print_fun($a); echo $str; //打印分类 function print_fun($assoc) { $str="<ul>"; foreach($assoc as $key=>$value) { $str.="<li>".$value["name"]."</li>"; if(!empty($value["list"])) $str.=print_fun($value["list"]); } $str.="</ul>"; return $str; } //递归实现分类 function fun($assoc,$id) { $temp=array(); foreach($assoc as $key=>$value) { if($value["pid"]==$id) { $assoc[$key]["list"]=array(); $assoc[$key]["list"]=fun($assoc,$value["id"]); array_push($temp,$assoc[$key]); } } return $temp; } ?>
3.查看结果:
相关文章推荐
- PHP实现远程图片下载
- php如何实现只替换一次或N次
- param getParameter getAttribute
- php重视问题1
- php新版本废弃 preg_replace /e 修饰符
- php curl请求封装(备份,万一下次用到了,直接copy哈哈哈)
- PHP开发框架HushFrameword在阿里服务器Windows Server2012上的环境搭建正确方法
- vsftpd本身不支持软连接
- 最准确的php截取字符串长度函数
- TFTP Server 搭建嵌入式
- PHP与.NET一致的DES(CBC)算法
- php关键字仅替换一次的实现函数
- ThinkPHP验证码不现实的处理方法
- php 框架 yii control 中使用布局
- PHP Twig模版的tags详解(中文)
- 深入浅析PHP7.0新特征(五大新特征)
- Ubuntu下安装、配置FTP服务
- PHP 7 值得期待的新特性(上)
- yii的csrf验证
- [Windows Server 2012] IIS自带FTP配置方法