Heim  >  Artikel  >  Backend-Entwicklung  >  So verwenden Sie Rekursion, um eine unendliche Bewertung unter dem TP5-Framework zu erreichen (Codebeispiel)

So verwenden Sie Rekursion, um eine unendliche Bewertung unter dem TP5-Framework zu erreichen (Codebeispiel)

不言
不言Original
2018-08-20 16:16:092489Durchsuche

Der Inhalt dieses Artikels befasst sich mit der Verwendung von Rekursion zur Erzielung einer unendlichen Bewertung (Codebeispiel) unter dem TP5-Framework. Ich hoffe, dass er für Sie hilfreich ist.

Ich verwende das tp5-Framework. Da viele Teile des Projekts Infinite Grading verwenden, erstelle ich direkt ein Catetree-Paket in Extend und erstelle dann eine Klasse Catetee.php, auf die direkt im Controller verwiesen werden kann . Das ist es

<?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);
    
   }
}

Verwandte Empfehlungen:

PHP implementiert stufenlose rekursive Klassifizierung (ThinkPHP-Framework), stufenloses Thinkphp

ThinkPHP implementiert eine rekursive stufenlose Klassifizierung mit weniger Code, thinkphp ist rekursiv

Das obige ist der detaillierte Inhalt vonSo verwenden Sie Rekursion, um eine unendliche Bewertung unter dem TP5-Framework zu erreichen (Codebeispiel). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn