Maison > développement back-end > tutoriel php > Comment utiliser la récursivité pour obtenir une notation infinie dans le framework TP5 (exemple de code)

Comment utiliser la récursivité pour obtenir une notation infinie dans le framework TP5 (exemple de code)

不言
Libérer: 2023-04-03 20:32:01
original
2509 Les gens l'ont consulté

Le contenu de cet article explique comment utiliser la récursivité pour obtenir une notation infinie (exemple de code) dans le cadre TP5. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

J'utilise le framework tp5. Comme de nombreuses parties du projet utilisent la notation infinie, je crée directement un package catetree dans extend puis crée une classe Catetee.php, qui peut être directement référencée dans le contrôleur. . C'est tout

<?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);
    
   }
}
Copier après la connexion

Recommandations associées :

PHP implémente une classification récursive en continu (framework ThinkPHP), thinkphp en continu

ThinkPHP implémente une classification récursive continue avec moins de code, thinkphp est récursif

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal