其中查找id下所有子分类的函数如下: $arr为无限极整体的数组,$pid_name为父id数据库的字段名,$id为要查找的id值.
static public function unlimited_child($arr,$pid_name,$id=0){
$tmp=array();
foreach ($arr as $v) {
if($v["$pid_name"]==$id){
$tmp[]=$v['id'];
// $tmp[]=$v;
$tmp=array_merge($tmp,self::unlimited_child($arr,$pid_name,$v['id']));
}
}
return $tmp;
}
调用方法://获取无限极分类的数据
$cateM=M('category');
$cateAll=$cateM->select();
//获得某个id下面的子分类,
$cid=Tree2::unlimited_child('$cateAll','parent_id',$id);
我用的是tp3.2的框架,每次都需要先调用$cateM=M('category');
$cateAll=$cateM->select();部分取一下数据,为了简化代码适应tp3.2,我改良后的类Tree2: $tablename为无限极栏目存放的表名,其他参数不变
static public function unlimited_child($tablename,$pid_name,$id=0){
$arr=M($tablename)->select();
// dump($arr);
$tmp=array();
foreach ($arr as $v) {
if($v["$pid_name"]==$id){
$tmp[]=$v['id'];
// $tmp[]=$v;
$tmp=array_merge($tmp,self::unlimited_child($tablename,$pid_name,$v['id']));
}
}
return $tmp;
}
调用方法:$cid=Tree2::unlimited_child('category','parent_id',$id);
但是取回来的是空,函数里// dump($arr);这块能取到数据,哪块出问题了,应该怎么写,谢谢
最佳答案
