php递归方法实现无限分类实例
数组代码如下:
- $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用以指定数组值之间的层级关系.