无限分类 tree结构生成 -迭代法

Posted 青涩柠檬

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无限分类 tree结构生成 -迭代法相关的知识,希望对你有一定的参考价值。

无限分类 tree结构生成

/**
 * 生成项目树
 * @param $projects
 * @param string $idKey
 * @param string $pidKey
 * @return array
 */

function makeTree($projects, $idKey = \'id\', $pidKey = \'pid\')
{
	$refer = array();
	$tree  = array();
	//创建主键的数组引用
	foreach ($projects as $k => $v) {
		$refer[$v[$idKey]] = &$projects[$k];
	}
	
	foreach ($projects as $k => $v) {
		//获取当前分类的父级id
		$pid = $v[$pidKey];
		if (isset($refer[$pid])) {
			//如果存在父级栏目,则添加进父级栏目的子栏目数组中
			$refer[$pid][\'children\'][] = &$projects[$k];
		} else {
			$tree[] = &$projects[$k];  //顶级栏目
		}
	}
	
	return $tree;
}

以上是关于无限分类 tree结构生成 -迭代法的主要内容,如果未能解决你的问题,请参考以下文章

php实现无限极分类

PHP无限分类生成树方法,非递归,引用

ruby on rails (实现无限极分类)

PHP MYSQL 请教 2个字段能无限分类吗?

thinkphp无限极分类能分页显示吗

php 递归实现无限极分类