php 无限分类 递归


$rows = array(
	array('id'=>'a','pid'=>''),
	array('id'=>'b1','pid'=>'a'),
	array('id'=>'b2','pid'=>'a'),
	array('id'=>'c1','pid'=>'b1'),
	array('id'=>'c2','pid'=>'b1'),
	array('id'=>'c3','pid'=>'c1'),
	array('id'=>'d','pid'=>'c3'),

);

// 把子找出来
function findChild(&$arr, $id) {
	$childs = array();
	foreach($arr as $k => $v) {
		if($v['pid'] == $id) {
			$childs[] = $v;
		}
	}
	return $childs;
}

// pid
function build_tree($root_id) {
	global $rows;
	
	$childs = findChild($rows,$root_id);
	if(empty($childs)) {
		return null;
	}
	foreach($childs as $k => $v) {
		$rescurTree = build_tree($v[id]);
		if(null != $rescurTree) {
			$childs[$k]['childs'] = $rescurTree;
		}
	}
	return $childs;
}

$trees = build_tree("a");

echo "
";
print_r($trees);
echo "
"
; ?>

你可能感兴趣的:(php)