递归 无限极分类
递归无限极分类就是自身调用自身进行循环操作,有两种办法一种是通过等级另一种是通过数据结构进行数据循环 public function roles($data,$pid=0,$levae=0) { //$data为自己查询出来的数组$pid=0表示父级id$leave表示等级 //进行if判断,判断数据类型 if(!is_object($data) && !is_array($data)) { return []; } //将数据转换成数组 $d=json_decode(json_encode($data),true); $array=array(); //将数据进行foreach循环 foreach ($d as $key=> $value) { //判断等级为0的作为父级 if($value['p_id']==$pid) { //在数组中添加一个字段作为等级当数据进行前台遍历是作为判断依据,在通过数据结构的方法中这个字段可以不用添加 $value['levae']=$levae; //将数据放到数组中 $array[$key]=$value; //调用本身将数据进行接收 $array[$key]['son']=$this->roles($d,$value['id'],$levae+1); } } /