php无限分类

关于无限分类是在兄弟连的视频中看过,知道基本思想,感觉很简单,自己肯定会;经过电魂笔试后,才发现看似简单的题目不经过自己亲自做一遍,是不知道自己是不是真正会做。

基本思想是用递归实现,但是就这么个简单的算法我调试了一个上午(用PHP写的),始终没找到自己的错误,最后才发现是因为var_dump()打印数组的时候,当数组过多或者维度过大的时候,会以...号取代,也就是不显示,我一直以为...是空数组的意思,真是无语。在网上找到了完全显示的方法,下面贴下链接:

http://blog.sina.com.cn/s/blog_461c24d50101h62x.html

php无限分类_第1张图片

1.数据库的设计:

至少三个字段(id,pid,name),下面是我的数据库设计

php无限分类_第2张图片

2.接下来就是PHP代码部分:

";
        foreach($assoc as $key=>$value)
        {
            $str.="
  • ".$value["name"]."
  • "; if(!empty($value["list"])) $str.=print_fun($value["list"]); } $str.=""; 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无限分类_第3张图片


    你可能感兴趣的:(面试笔试)