• 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);exit;

  • 相关阅读:
    PLSQL Developer新建表空间
    oracle中where子句和having子句中的区别
    ORACLE基本数据类型
    Oracle数据库字符集问题
    问题及解决方法
    Show Profile
    批量数据脚本
    慢查询日志
    GROUP BY关键字优化
    order by关键字优化
  • 原文地址:https://www.cnblogs.com/xingmeng/p/3229410.html
Copyright © 2020-2023  润新知