网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的范文:

 

标题 PHP树-不需要递归的实现方法
范文
    下面小编就为大家带来一篇PHP树-不需要递归的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。
    PHP树-不需要递归的实现方法
    /**
     * 创建父节点树形数组
     * 参数
     * $ar 数组,邻接列表方式组织的数据
     * $id 数组中作为主键的下标或关联键名
     * $pid 数组中作为父键的下标或关联键名
     * 返回 多维数组
     **/
    function find_parent($ar, $id='id', $pid='pid') {
     foreach($ar as $v) $t[$v[$id]] = $v;
     foreach ($t as $k => $item){
      if( $item[$pid] ){
       if( ! isset($t[$item[$pid]]['parent'][$item[$pid]]) )
         $t[$item[$id]]['parent'][$item[$pid]] =& $t[$item[$pid]];
      }
     }
     return $t;
    }
    /**
     * 创建子节点树形数组
     * 参数
     * $ar 数组,邻接列表方式组织的数据
     * $id 数组中作为主键的下标或关联键名
     * $pid 数组中作为父键的下标或关联键名
     * 返回 多维数组
     **/
    function find_child($ar, $id='id', $pid='pid') {
     foreach($ar as $v) $t[$v[$id]] = $v;
     foreach ($t as $k => $item){
      if( $item[$pid] ) {
       $t[$item[$pid]]['child'][$item[$id]] =& $t[$k];
      }
     }
     return $t;
    }
      $data = array(
       array('ID'=>1, 'PARENT'=>0, 'NAME'=>'祖父'),
       array('ID'=>2, 'PARENT'=>1, 'NAME'=>'父亲'),
       array('ID'=>3, 'PARENT'=>1, 'NAME'=>'叔伯'),
       array('ID'=>4, 'PARENT'=>2, 'NAME'=>'自己'),
       array('ID'=>5, 'PARENT'=>4, 'NAME'=>'儿子'),
      );
      $p = find_parent($data, 'ID', 'PARENT');
      $c = find_child($data, 'ID', 'PARENT');
      Print_r ($c);
    执行效果:
    Array
    (
      [1] => Array
        (
          [ID] => 1
          [PARENT] => 0
          [NAME] => 祖父
          [child] => Array
            (
              [2] => Array
                (
                  [ID] => 2
                  [PARENT] => 1
                  [NAME] => 父亲
                  [child] => Array
                    (
                      [4] => Array
                        (
                          [ID] => 4
                          [PARENT] => 2
                          [NAME] => 自己
                          [child] => Array
                            (
                              [5] => Array
                                (
                                  [ID] => 5
                                  [PARENT] => 4
                                  [NAME] => 儿子
                                )
                            )
                        )
                    )
                )
              [3] => Array
                (
                  [ID] => 3
                  [PARENT] => 1
                  [NAME] => 叔伯
                )
            )
        )
      [2] => Array
        (
          [ID] => 2
          [PARENT] => 1
          [NAME] => 父亲
          [child] => Array
            (
              [4] => Array
                (
                  [ID] => 4
                  [PARENT] => 2
                  [NAME] => 自己
                  [child] => Array
                    (
                      [5] => Array
                        (
                          [ID] => 5
                          [PARENT] => 4
                          [NAME] => 儿子
                        )
                    )
                )
            )
        )
      [3] => Array
        (
          [ID] => 3
          [PARENT] => 1
          [NAME] => 叔伯
        )
      [4] => Array
        (
          [ID] => 4
          [PARENT] => 2
          [NAME] => 自己
          [child] => Array
            (
              [5] => Array
                (
                  [ID] => 5
                  [PARENT] => 4
                  [NAME] => 儿子
                )
            )
        )
      [5] => Array
        (
          [ID] => 5
          [PARENT] => 4
          [NAME] => 儿子
        )
    )
    以上这篇PHP树-不需要递归的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考
随便看

 

在线学习网范文大全提供好词好句、学习总结、工作总结、演讲稿等写作素材及范文模板,是学习及工作的有利工具。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/18 2:30:11