<?php /** * 递归方法实现无限级别分类 * @param array $list 要生成树形列表的数组[该数组中必须要有主键id 和 父级pid] * @param int $pid=0 父级id * @param int $level=0 缩进次数[用于指定分类名称要缩进的数量] */ function getTree($list,$pid=0,$level=0 ) { // static 表示声明一个静态变量, 静态变量在函数中会一直保存它的值 static $tree = array(); foreach($list as $row) { if($row['pid']==$pid) { // 这个level是原来数组没有的,用于表示缩进的次数 $row['level'] = $level; $tree[] = $row; // 递归操作,重新把当前id传入函数中,获取当前id对应的子分类 getTree($list, $row['id'], $level + 1); } } return $tree; }