首先呢,递归就是自己调用本身。
那么用递归实现一个无限极分类,创建一个方法,将我们查询的数组$data作为放在里面,加两个表示$pid,$level,再定义一个空数组,然后循环$data,若$val里的p_id( 负级ID)=$pid,让$val['level']=$level;$html_str[] = $val;
调用这个方法: $this->getDigui($data,$val['cat_id'],$level+1);
需要返回的字符串return $html_str;
例如:
public function getDigui($data,$pid=0,$level=0){
$html_str = array();foreach($data as $key=>$val){
if($val['p_id'] == $pid){
$val['level']=$level;
$html_str[] = $val;
$this->getDigui($data,$val['cat_id'],$level+1);
}
}
return $html_str;
}