三级归类不递归是怎样实现的呢 (附测试代码) 求解

php中文网
发布: 2016-06-13 12:55:00
原创
1090人浏览过

三级分类不递归是怎样实现的呢 (附测试代码) 求解

本帖最后由 anydy2008 于 2013-01-06 12:07:44 编辑 看了几天前的一个帖子  
http://bbs.csdn.net/topics/390331161
当中有snmr_com 的热心回复,提到不递归实现分类的方法。

我就想,按照这个逻辑可否将类别实现树形数组结构呢。
下面是我用递归形式生成的  代码如下:
<br />
<?<br />
$arr = array(<br />
    <br />
    array('id'=>1,'city_name'=>'中国','rel_id'=>'1','pid'=>0),<br />
    array('id'=>2,'city_name'=>'广东','rel_id'=>'1-2','pid'=>1),<br />
    array('id'=>3,'city_name'=>'深圳','rel_id'=>'1-2-3','pid'=>2),<br />
    array('id'=>4,'city_name'=>'广州','rel_id'=>'1-2-4','pid'=>2)<br />
   <br />
);<br />
<br />
function find_subclass( $pid ){<br />
    <br />
    global $arr;<br />
    $__arr = array();<br />
    foreach ( $arr as $k=>$v )<br />
    {<br />
        <br />
        if( $v['pid']==$pid )$__arr[] = $v;<br />
        <br />
    }<br />
    return $__arr;<br />
    <br />
}<br />
<br />
function tree_subclass($pid=0){<br />
    <br />
    $__arr = array();<br />
    $__arr = find_subclass($pid);<br />
    if( !empty($__arr) ){<br />
        <br />
        foreach ( $__arr as $k=>$v )<br />
        {<br />
<br />
            $__arr[$k]['subclass'] = tree_subclass($v['id']);<br />
            <br />
        }<br />
        <br />
    }<br />
    return $__arr;<br />
}<br />
<br />
var_dump(tree_subclass(0));<br />
<br />
?><br />
<br />
登录后复制



期望通过不递归的形式得到的数组结构:

<br>
array(1) {<br>
  [0]=&gt;<br>
  array(5) {<br>
    ["id"]=&gt;<br>
    int(1)<br>
    ["city_name"]=&gt;<br>
    string(4) "中国"<br>
    ["rel_id"]=&gt;<br>
    string(1) "1"<br>
    ["pid"]=&gt;<br>
    int(0)<br>
    ["subclass"]=&gt;<br>
    array(1) {<br>
      [0]=&gt;<br>
      array(5) {<br>
        ["id"]=&gt;<br>
        int(2)<br>
        ["city_name"]=&gt;<br>
        string(4) "广东"<br>
        ["rel_id"]=&gt;<br>
        string(3) "1-2"<br>
        ["pid"]=&gt;<br>
        int(1)<br>
        ["subclass"]=&gt;<br>
        array(2) {<br>
          [0]=&gt;<br>
          array(5) {<br>
            ["id"]=&gt; <div class="clear"></div>
登录后复制
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号