php查询所有的子集用户;递归是常用方法。
public function get_attr($array,$id){
$tree = array(); //每次都声明一个新数组用来放子元素
foreach($array as $v){
if($v[;pid;] == $id){ //匹配子记录
$v[;children;] = $this->get_attr($array,$v[;id;]); //递归获取子记录
if($v[;children;] == null){
unset($v[;children;]); //如果子元素为空则unset()进行删除;说明已经到该分支的最后一个元素了;可选;
}
$tree[] = $v; //将记录存入新数组
}
}
return $tree; //返回新数组
}
如果说你确保你的代码是完全没有问题;有递归过程和退出。但是任然有内存溢出。就像这样
把我坑大发了;把我的代码瞅来瞅去;没问题呀;嗯;网上一查;说是php版本的问题;要把内存限制改大点;我都从128M改到1024M了;还是这样子。崩溃了。
实在是没办法了。就把数据库的数据拿出来看。自己按照机器的方式跑了一遍;才发现问题。 问题出在了原始数据上;;
$list=array(
array(;id;=>1,;name;=>;父类;,;pid;=>3),
array(;id;=>2,;name;=>;子类;,;pid;=>1),
array(;id;=>3,;name;=>;孙类;,;pid;=>2),
);
Microsoft Toolkit如何激活Office?-Microsoft Toolkit激活Office方法教程