PHP 循环删除无限分类子节点

<?php

    private  function _deleteSubNode($ids){



        $subNodes = array();

        $mod = D('Node');

        foreach (explode ( ',', $ids ) as $k){

            $res = $this->_getSubNode($k,$subNodes[$k],$mod);  //获取子节点

            if(!empty($res[0])){

                foreach($res as $k => $nid){

                    $mod->where('id = '.$nid)->delete();       //删除子节点

                }

            }

        }

        return ; 

    }

    

    private function _getSubNode($id, &$arr,$mod){

         

         $condition = array ('pid' => array ('eq', $id ));

         $ret = $mod->where($condition)->getField('id');

         if(!empty($ret[0])){

             foreach ($ret as $k => $node){

                 $arr[] = $node['id'];

                 $this->_getSubNode($node['id'], $arr, $mod);

            }

         }

         return $arr;

    }



?>

你可能感兴趣的:(PHP)