博客列表 >根据地址的region的level查询地区

根据地址的region的level查询地区

朝游东海
朝游东海原创
2018年09月25日 15:26:15867浏览






if($this->parameter['region_id'] != ''){//工作地址
			//$region_id = 2367;//2372;//2368;2367dffffffffff
			$region_id = $this->parameter['region_id'];
			$roa =  M('Region')->where(['id'=>$region_id])->find();
			if($roa['level']==3){//查找统计 where(['region_id'=>$region_id]) 同区所有的招聘找到
				$map['region_id'] = $region_id;
			}elseif($roa['level']==2){//查询,where in
				//查询当前的父级
				//$pid =M('Region')->where(['id'=>$row['region_id']])->getField('pid');
				//$pid =M('Region')->where(['id'=>$region_id])->getField('pid');
				//print_r($pid);
				//查询父级所有的地区
				//$list = M('Region')->field('id,pid,shortname,name,level')->where(['pid'=>$region_id])->select();
				$ids = M('Region')->field('id')->where(['pid'=>$region_id])->select();
				array_merge_rec($ids);
				//查询所有region_id在该数组中的职位
				//$list = M('RecruitList')->where(['region_id'=>['in',$ids]])->select();
				//$condition ['id'] = array ( 'in', $idList );
				$map['region_id'] = array('in',$ids);
			}else{
				//$row['level'] == 1;
				$ids = M('Region')->field('id')->where(['pid'=>$region_id])->select();//level1 下的 level2 2369 
				//array_merge_rec($ids);
				foreach($ids as $k=>$v){//查询的3
					$ids[$v['id']] = M('Region')->field('id')->where(['pid'=>$v['id']])->select();
				}
				array_merge_rec($ids);
				//$list = M('RecruitList')->where(['region_id'=>['in',$ids]])->select();
				$map['region_id'] = array('in',$ids);
			}
		}


/*
*功能:多维数组转一维数组
*@autor :OSama
*@param: $arr 多维数组
*@return: $arr 一维数组
*@使用 array_merge_rec ( $my_array );  然后打印 print_r ( $my_array );	
*/

function array_merge_rec(&$array) {  // 参数是使用引用传递的
		   // 定义一个新的数组
			$new_array = array ();
			// 遍历当前数组的所有元素
			foreach ( $array as $item ) {
				if (is_array ( $item )) {
					// 如果当前数组元素还是数组的话,就递归调用方法进行合并
					 array_merge_rec ( $item );
					// 将得到的一维数组和当前新数组合并
					$new_array = array_merge ( $new_array, $item );
				} else {
					// 如果当前元素不是数组,就添加元素到新数组中
					$new_array [] = $item;
				}
			}
			// 修改引用传递进来的数组参数值
			$array = $new_array;	
}


备注:地址数据表结构

region.png




声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议