php递归搞定无限分类

作者:norion时间:2013年12月17日评论次数:0 条

无限分类是大家常用的东西,这里总结给大家,有用拿走。。。

数组:

$items = array(
	array('id' => 1, 'pid' => 0, 'name' => '一级11' ),
	array('id' => 11, 'pid' => 0, 'name' => '一级12' ),
	array('id' => 2, 'pid' => 1, 'name' => '二级21' ),
	array('id' => 10, 'pid' => 11, 'name' => '二级22' ),
	array('id' => 3, 'pid' => 1, 'name' => '二级23' ),
	array('id' => 12, 'pid' => 11, 'name' => '二级24' ),
	array('id' => 13, 'pid' => 12, 'name' => '三级31' ),
	array('id' => 9, 'pid' => 1, 'name' => '二级25' ),
);

函数:

function formatTree($array, $pid = 0){
	$arr = array();
	$tem = array();
	foreach ($array as $v) {
		if ($v['pid'] == $pid) {
			$tem = formatTree($array, $v['id']);
                        //判断是否存在子数组
			$tem && $v['son'] = $tem;
			$arr[] = $v;
		}
	}
	return $arr;
}

其中,数组一定要包含id和pid用以指定数组值之间的层级关系。

上一篇: javascript调试利器console.table()

下一篇:html5 canvas时钟,其实很简单

相关文章

评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注