Allowed memory size of 33554432 bytes exhausted ..
之前一直用一直没出现问题,现在再用就报错了。之前是根据int的id来递归,现在根据varchar的用户名递归。并且现在才不到10条数据。是不是跟字段类型有关?
递归代码
function getTree($list, $parent_id, $level=0) {
static $tree = array();
foreach($list as $row) {
if($row['pid'] == $parent_id) {
$row['level'] = $level;
$tree[] = $row;
getTree($list, $row['id'], $level+1);
}
}
return $tree;
}
可能原因:递归没有返回,从而无限递归,最终造成函数的调用栈溢出。
递归的两个基本条件:
递归的退出条件。
递推过程。
建议楼主贴出所传入的参数,或者自己在每次递归调用时,打印一下所传入的参数,看是不是因为数据结构问题造成了循环递归。