递归取所有子类/父类(子栏目/父栏目)

2 篇文章 0 订阅
1 篇文章 0 订阅

递归取所有子类

 /**
	 * 通过ID 获得子节点信息
	 * @param $cateid
	 * @return array
	 */
	public function getchilrenid($cateid){
		$cateres=$this->select();
		return $this->_getchilrenid($cateres,$cateid);
	}

	/**
	 * 递归方法
	 * @param $cateres
	 * @param $cateid
	 * @return array
	 */
	public function _getchilrenid($cateres,$cateid){
		static $arr=array();
		foreach ($cateres as $k => $v) {
			if($v['pid'] == $cateid){
				$arr[]=$v['id'];
				$this->_getchilrenid($cateres,$v['id']);
			}
		}
		return $arr;
	}
	
	/**
	 * 取子栏目
	 * @param {Object} $category_id
	 */
	public function getSubCategories ($cid)
	{
		$ids_str = '';
		if(is_array($cid)) {
			$ids_str = implode(',', $cid);
		}
		else {
			$ids_str = $cid;
		}
		
		$ids = $this->where('pid', 'IN', $ids_str)->column('id');
		
		if($ids){
			$idsStr = self::getSubCategories($ids);
			$ids_str .= ','.$idsStr;
		}
		
		return $ids_str;
		
	}
	
	/**
	 * 取上级父栏目,第一个元素为根;
	 * @param array()
	 *
	 *return array parents
	 */
	public function get_parents($pid)
	{
		static $parents = [];
		$cat = $this->get($pid);
		$parents[] = $cat;
		
		if($cat['pid']){
			$this->get_parents($cat['pid']);
		}
		krsort($parents);
		return array_values($parents);
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值