昨晚折腾了很久的一维数组转三维数组
$professionalcategoryList = $this->professionalcategory->listModels(null, null, null);
$subjectList = null; // $major['country']['degree'][0]
foreach ( $professionalcategoryList as $key=>$professionalcategory){
$cId = $professionalcategory['own_country_id'];
$eId = $professionalcategory['own_education_id'];
$flagCountry = 0; //假设不存在当前国家
foreach($subjectList as $j=>$country ){
if( $cId == $j ){
//国家已经存在数组
$flagDegree = 0;
foreach ($subjectList[$j] as $i=>$degree ){
if( $eId == $i ){
//学历已经存在数组
array_push($subjectList[$cId][$eId],$professionalcategory);
$flagDegree = 1;
break;
}
}
if($flagDegree == 0){
//如果当前学历不存在,加入学历
$subjectList[$cId][$eId][0] = $professionalcategory;
}
$flagCountry = 1; //当前国家存在
break;
}
}
if($flagCountry == 0){
//如果当前国家不存在,加入国家
$subjectList[$cId][$eId][0] = $professionalcategory;
}
}
$this->assign('subjectList',$subjectList);
然后今天想到一个中更简单的方法
/* 一种比较简单的方法 */
foreach ( $professionalcategoryList as $key=>$professionalcategory){
$cId = $professionalcategory['own_country_id'];
$eId = $professionalcategory['own_education_id'];
if( $subjectList[$cId][$eId] == null ){ //如不存在,定义一下,给array_push用,否则报错
$subjectList[$cId][$eId] = array();
}
array_push($subjectList[$cId][$eId], $professionalcategory);
}