先获祖先节点,然后获取兄弟节点

    private function _getNav()
    {
    	//先获祖先节点,然后获取兄弟节点
    	$nav_model=M('nav');
        $id=I('get.n_id',0);
    	$condition['is_show']=1;
        $navList=$nav_model->where($condition)->select();
        // dump($navList);
    	$parent=$this->_getParent($navList,$id);//查找一级节点
        $sonList=$this->_getSons($navList,$parent['id']);
    	return array('parent'=>$parent,'sons'=>$sonList);
    }

    /**
     * [getParent 找到一级节点]
     * @Author:wty
     * @DateTime:2016-05-01T17:14:10+0800
     * @return [type] [description]
     */
    private function _getParent($arr,$son)
    {
    	$first=array();
    	foreach ($arr as $key => $value) {
    		if($value['id']==$son&&$value['parentid']!=0){
    			$first=$this->_getParent($arr,$value['parentid']);
    		}
    		if($value['id']==$son&&$value['parentid']==0){
    			$first=$value;
    		}
    	}
    	return $first;
    }

    /**
     * [getSons 子孙查找]
     * @Author:wty
     * @DateTime:2016-05-01T17:14:48+0800
     * @return [type] [description]
     */
    private function _getSons($arr,$parentid)
    {
    	$first=array();
    	foreach ($arr as $key => $value) {
    		if($value['parentid']==$parentid&&$value['parentid']!=0){
    			$first[]=$value;
    		}	
    	}
    	return $first;
    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值