2012-11-13 3 views
0

json 코드가 올바르게 읽을 수 있도록 데이터를 포맷하려고합니다. 최종 결과는 다음과 같을 필요 :마지막 반복 만 리턴하는 다차원 foreach 배열

'2'는 영역 ID는
[2][4][36] = 'Ohio' 

은 '4'분할 식별자이고, '36'상태의 ID이다. 분명히, 지역 및 부서가 선택되는 많은 다른 결과가 있지만, 모든 결과는 위에서와 같이 반환되어야합니다.

아래 코드에서 얻은 결과는 마지막 반복 만 반환합니다. 나는 내가 잘못 궁금 해요 :

$divisionCodeResults = array(); 
    foreach($regionCodes as $key => $value){   
     $divisionCodeResults[$key] = $divisionTable->getDivisionResultsByRegionCode($key);     
      foreach($divisionCodeResults as $divValue){ 
       $array_1 = array(); 
       foreach($divValue as $divKey => $div2Value){      
        $array_1[$divKey] = $divKey; 
        $array_2 = array(); 
        foreach($array_1 as $array_1_value){       
         $array_2[$key][$divKey] = Doctrine_Core::getTable('state')->getStatesIdAndNamesThatMatchDivisionKey($array_1_value); 
        } 
       } 
      } 
    } 

위 위해서 var_dump()는 출력 follwing을 : 형식이 올바르게되어 있지만, 언급 한 바와 같이,이 마지막 반복을 반환

array (size=1) 
    6 => 
    array (size=1) 
     11 => 
     array (size=2) 
      52 => string 'Puerto Rico' (length=11) 
      54 => string 'Virgin Islands' (length=14) 

긴 다차원 배열에서.

내가 잘못하고있는 것에 대한 설명을 감사하게 생각합니다. 미리 감사드립니다.

편집 :

array (size=5) 
    2 => 
    array (size=2) 
     4 => string 'East North Central' (length=18) 
     5 => string 'West North Central' (length=18) 
    3 => 
    array (size=2) 
     2 => string 'New England' (length=11) 
     3 => string 'Mid-Atlantic' (length=12) 
    4 => 
    array (size=3) 
     6 => string 'South Atlantic' (length=14) 
     7 => string 'East South Central' (length=18) 
     8 => string 'West South Central' (length=18) 
    5 => 
    array (size=2) 
     9 => string 'Mountain' (length=8) 
     10 => string 'Pacific' (length=7) 
    6 => 
    array (size=1) 
     11 => string 'Carribean' (length=9) 

는 상기의 결과이다 : 위해서 var_dump ($ divisionCodeResults);

+0

, 중첩 루프에서 속성 값에 대해 다른 이름을 사용,'$ divValue'을 재사용하지 않습니다. 또한'$ array_1','$ array_2'의 최종 값으로 실제로 아무것도하지 않습니다. –

+0

당신은 정확히 var dumping입니까? –

+0

$ divValue의 재사용을 잘 파악합니다. 내가 var_dump ($ array_2) – Patrick

답변

0

이동 $ 배열 _1와 같은 루프의 $ array_2 외부 : 처음에는

$array_1 = array(); 
$array_2 = array(); 
$divisionCodeResults = array(); 
foreach($regionCodes as $key => $value){   
    $divisionCodeResults[$key] = $divisionTable->getDivisionResultsByRegionCode($key);     
     foreach($divisionCodeResults as $divValue){ 
//    $array_1 = array(); 
      foreach($divValue as $divKey => $div2Value){      
       $array_1[$divKey] = $divKey; 
//     $array_2 = array(); 
       foreach($array_1 as $array_1_value){       
        $array_2[$key][$divKey] = Doctrine_Core::getTable('state')->getStatesIdAndNamesThatMatchDivisionKey($array_1_value); 
       } 
      } 
     } 
}