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

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号