zoukankan      html  css  js  c++  java
  • 把返回的数据集转换成数组树



    $old = array(
    array('id'=>1,'pid'=>0,'name'=>'第一个' ),
    array('id'=>2,'pid'=>1,'name'=>'第二个' ) ,
    array('id'=>3,'pid'=>2,'name'=>'第三个'),
    );
    print_r(list_to_tree($old,'id','pid','_child'));
    输出如下
    $old = array(
    array(
    'id'=>1,
    'pid'=>0,
    'name'=>'第一个',
    '_child'=>array(
        'id'=>2,
        'pid'=>1,
        'name'=>'第二个'
        '_child'=>array('id'=>3,'pid'=>2,'name'=>'第三个'),
        ),
    ) ,

    );
    标签:    CorePHP
    代码片段(1)
    [代码] 把返回的数据集转换成数组树
    01    /**
    02     * 把返回的数据集转换成Tree
    03     * @access public
    04     * @param array $list 要转换的数据集
    05     * @param string $pid parent标记字段
    06     * @param string $level level标记字段
    07     * @return array
    08     */
    09    function list_to_tree($list, $pk='id',$pid = 'pid',$child = '_child',$root=0) {
    10        // 创建Tree
    11        $tree = array();
    12        if(is_array($list)) {
    13            // 创建基于主键的数组引用
    14            $refer = array();
    15            foreach ($list as $key => $data) {
    16                $refer[$data[$pk]] =& $list[$key];
    17            }
    18            foreach ($list as $key => $data) {
    19                // 判断是否存在parent
    20                $parentId = $data[$pid];
    21                if ($root == $parentId) {
    22                    $tree[] =& $list[$key];
    23                }else{
    24                    if (isset($refer[$parentId])) {
    25                        $parent =& $refer[$parentId];
    26                        $parent[$child][] =& $list[$key];
    27                    }
    28                }
    29            }
    30        }
    31        return $tree;
    32    }

  • 相关阅读:
    日报 18/07/10
    meta标签
    map 和 vector 的erase函数说明
    Intel CPU MMX SSE SSE2/3/4指令集手册下载URL
    关于c中 int, float, double转换中存在的精度损失问题
    c++ 常数后缀说明
    STL中容器的push()或者push_back()函数的一点说明
    fprintf, fscanf,printf,scanf使用时参数注意
    操作系统 庞丽萍 第七章
    辨析全局变量的声明与定义
  • 原文地址:https://www.cnblogs.com/xingmeng/p/2891983.html
Copyright © 2011-2022 走看看