数组转换

昨晚折腾了很久的一维数组转三维数组

$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);
		}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值