递归实现无限级分类

 1,
		'name' => 'java',
		'pid' => 0,
	),
	array(
		'id' => 2,
		'name' => 'php',
		'pid' => 0,
	),
	array(
		'id' => 3,
		'name' => 'java基础',
		'pid' => 1,
	),
	array(
		'id' => 4,
		'name' => 'php基础',
		'pid' => 2,
	),
	array(
		'id' => 5,
		'name' => 'java数组',
		'pid' => 3,
	),
	array(
		'id' => 6,
		'name' => 'php变量',
		'pid' => 4,
	),
);


//递归无限级分类函数
function tree($arr,$id,$level) {
	static $sub = array();
	foreach($arr as $k=>$v) {
		if($v['pid'] == $id) {
			$v['level'] = $level;
			$sub[] = $v;
			tree($arr,$v['id'],$level+1);
		}
	}
	return $sub;
}

$result = tree($data,0,1);

//输出
foreach($result as $v) {
	$pre = '|'.str_repeat('--',$v['level']);
	echo $pre.$v['name'].'
'; } /* |--java |----java基础 |------java数组 |--php |----php基础 |------php变量 */

 

你可能感兴趣的:(php)