>  기사  >  백엔드 개발  >  TP5 프레임워크에서 재귀를 사용하여 무한 채점을 달성하는 방법(코드 예)

TP5 프레임워크에서 재귀를 사용하여 무한 채점을 달성하는 방법(코드 예)

不言
不言원래의
2018-08-20 16:16:092506검색

이 글의 내용은 TP5 프레임워크에서 재귀를 사용하여 무한 채점을 달성하는 방법(코드 예제)에 대한 내용입니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다. .

저는 프로젝트의 많은 부분에서 무한 그레이딩을 사용하기 때문에 확장에서 직접 catetree 패키지를 만든 다음 Catetee.php 클래스를 만듭니다. 그냥 직접 인용하세요

<?php
namespace catetree;
class Catetree {
    
    public function catetree($cateRes){
        return $this->sort($cateRes);
    }
    public function sort($cateRes,$pid=0,$level=0){
        static $arr=array();
        foreach ($cateRes as $k => $v) {
            if($v[&#39;pid&#39;]==$pid){
                $v[&#39;level&#39;]=$level;
                $arr[]=$v;
                $this->sort($cateRes,$v[&#39;id&#39;],$level+1);
            }
        }
        return $arr;
    }
    //获取子栏目id
   public function childrenids($cateid,$obj){
        $data=$obj->field(&#39;id,pid&#39;)->select();
        return $this->_childrenids($data,$cateid,TRUE);
   }
   private function _childrenids($data,$cateid,$clear=FALSE){
        static $arr=array();
        if($clear){
          $arr=array();
        }
        foreach ($data as $k => $v) {
            if($v[&#39;pid&#39;]==$cateid){
                $arr[]=$v[&#39;id&#39;];
                $this->_childrenids($data,$v[&#39;id&#39;]);
            }
        }
        return $arr;
   }
   //处理栏目排序
   public function cateSort($data,$obj){
    foreach ($data as $k => $v) {
        $obj->update([&#39;id&#39;=>$k,&#39;sort&#39;=>$v]);
    }
   }
   //处理批量删除
   public function pdel($cateids){
            foreach ($cateids as $k => $v) {
                $childrenidsarr[]=$this->childrenids($v);
                $childrenidsarr[]=(int)$v;
            }  
            $_childrenidsarr=array();
            foreach ($childrenidsarr as $k => $v) {
                if(is_array($v)){
                    foreach ($v as $k1 => $v1) {
                       $_childrenidsarr[]=$v1;
                    }
                }else{
                    $_childrenidsarr[]=$v;
                }
            }
            $_childrenidsarr=array_unique($_childrenidsarr);
            $this::destroy($_childrenidsarr);
    
   }
}

관련 추천:

PHP는 무단계 재귀 분류(ThinkPHP 프레임워크), 무단계 thinkphp#🎜 🎜 #

ThinkPHP는 더 적은 코드로 재귀적 무단계 분류를 구현합니다. thinkphp recursive

위 내용은 TP5 프레임워크에서 재귀를 사용하여 무한 채점을 달성하는 방법(코드 예)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.