2012-04-17 5 views
0

의 Foreach 루프 : 출력 오류를 복제

$aNewCodes = array("93", "355", "213"); 
$aServiceProviderId = array(); 
$oTerminationRate = new TerminationRate(); 

foreach ($aNewCodes as $iNewCodesKey => $iNewCodesValue) 
{ 
    $oTerminationRate->GetServiceProviders($aServiceProviderId, $iNewCodesValue); 

    foreach($aServiceProviderId as $iProviderKey => $iProviderValue) 
    { 
     echo $iNewCodesValue." :: ".$iProviderValue."<br>"; 
    } 
} 

를 다음과 같이 내 코드는 그리고 이렇게 나에게 출력을 제공 -이 같은

사실
93 :: 1 
93 :: 2 
355 :: 1 
355 :: 2 
355 :: 1 
355 :: 2 
213 :: 1 
213 :: 2 
213 :: 1 
213 :: 2 
213 :: 1 
213 :: 2 

내가 기대하고 출력 -

93 :: 1 
93 :: 2 
355 :: 1 
355 :: 2 
213 :: 1 
213 :: 2 

그 결과물을 얻기 위해 많은 노력을했지만 성공하지 못했습니다. 나는 어디에서 빗나가고 있니?

+0

'GetServiceProviders'가 첫 번째 인수 *를 받아들이는 부분을 참조로 * 빠뜨린 것 같습니다. 두 항목을 추가합니다. 그렇지 않다면, 당신의 코드는 어떤 * 출력도주지 않을 것이다. – Jon

+0

예, 참조로 수락하고 코드는 출력을 제공합니다 .. – skos

답변

1

루프의 각 반복마다 aServiceProviderId 배열에서 이전 항목을 삭제하지 않는 것이 문제입니다. 바로

$oTerminationRate->GetServiceProviders($aServiceProviderId, $iNewCodesValue); 

전에 그리고 당신은 확인을해야 - 첫 번째 루프 내에서 라인

$aServiceProviderId = array(); 

넣습니다.

+0

그래서이 스 니펫에서 ** 아무데도 사용되지 않은 ** 변수 중 하나의 값을 재설정하면 문제가 해결됩니다. – Jon

+0

'$ oProviderForCountry = new ProviderForCountry();'는 코드에서 불필요합니다 – skos

+0

@Jon 죄송합니다. OP 코드에서 잘못된 행을 복사/붙여 넣었습니다. 나는 그것을 바로 잡았다. 당신은 방금 대답을 편집했을 수 있습니다 –