php list_to_tree数据集转换成树

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php list_to_tree数据集转换成树相关的知识,希望对你有一定的参考价值。

/**
 * 把返回的数据集转换成Tree
 * @param array $list 要转换的数据集
 * @param string $pid parent标记字段
 * @param string $level level标记字段
 * @return array
 * @author 麦当苗儿 <zuojiazi@vip.qq.com>
 */
function list_to_tree($list, $pk = 'id', $pid = 'pid', $child = '_child', $root = 0) {
    // 创建Tree
    $tree = array();
    if (is_array($list)) {
        //var_dump($list);
        // 创建基于主键的数组引用
        $refer = array();
        foreach ($list as $key => $data) {
            $refer[$data[$pk]] = &$list[$key];
        }
        //var_dump($refer);
        foreach ($list as $key => $data) {
            // 判断是否存在parent
            $parentId = $data[$pid];
            if ($root == $parentId) {
                $tree[] = &$list[$key];
            } else {
                if (isset($refer[$parentId])) {
                    $parent           = &$refer[$parentId];
                    $parent[$child][] = &$list[$key];
                }
            }
        }
    }
    return $tree;
}

以上是关于php list_to_tree数据集转换成树的主要内容,如果未能解决你的问题,请参考以下文章

利用并查集判断一个无向图是否成树

PHP 把返回的数据集转换成Tree树

利用并查集判断一个有向图是否成树

如何使用 PHP 转换标准化数据集?

access treeview读取数据表成树并与子窗体联动

php mysql 查询