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; }
备注:地址数据表结构