Think PHP遞歸獲取所有的子分類的ID (刪除當前及子分類)
阿新 • • 發佈:2017-08-13
cti eid 刪除 error return code where arr pre
遞歸獲取所有的子分類的ID:
//遞歸獲取所有的子分類的ID function get_all_child($array,$id){ $arr = array(); foreach($array as $v){ if($v[‘pid‘] == $id){ $arr[] = $v[‘id‘]; $arr = array_merge($arr,get_all_child($array,$v[‘id‘])); }; }; return $arr; }
在進行刪除欄目的時候,需要刪除當前欄目下的所有子欄目:
//刪除分類 public function delCate(){ $get = I(‘get.pid‘); $cateId = M(‘category‘)->field(array(‘id‘,‘pid‘))->select(); $delId = get_all_child($cateId,$get); $delId[] = $get; $where = array( ‘id‘ => array(‘IN‘,$delId) ); if(!M(‘category‘)->where($where)->delete()){ $this->error(‘刪除失敗‘); }; $this->success(‘刪除成功‘,U(‘index‘)); }
Think PHP遞歸獲取所有的子分類的ID (刪除當前及子分類)