for문에서 값은 가져오려고 하는데... > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

for문에서 값은 가져오려고 하는데... 정보

for문에서 값은 가져오려고 하는데...

본문

안녕하세요!
다음과 같이 for문을 이용해서 값을 처리하려고 합니다.
그런데 이상하게 for 문의 결과값이 3개 있을 때
순서대로 1번째 값, 2번째 값, 3번째 값 이렇게 나와야 하는데
결과는 2번째 값, 2번째 값, 3번째값 이렇게 나오네요.
무엇이 문제인지 도움부탁드립니다.

for ($i=0; $cartsubData[company][$i]; $i++) {

    for ( $j=0; $cartsubData[company][$i][$j]; $j++ ) {
          $tmpPriceTotaly = $cartsubData[company][$i][$j][ct_amount]*$cartsubData[company][$i][$j][ct_qty];


        $tmpDc = (int)($tmpPriceTotaly * Level);
            $tmpap  = substr($tmpDc, 0, -1);
            $tmpjan = substr($tmpDc, -1, 1);

            if ( $tmpjan < '5') {
                $tmpDc = $tmpap."0";
            } else {
                $tmpDc1 = $tmpDc + 10;
                $tmpap = substr($tmpDc1, 0, -1);
                $tmpDc = $tmpap."0";
            }

            $tmpDcArr[$i] = $tmpDc;
            echo "$tmpDcArr[$i][$j]  "; <= 이곳에서 echo시켜보면 값이 정확하게 나옵니다.
            (첫번째 값 : 1230, 두번째값 : 630, 세번째 값 : 110 - 이 값들은 입력된 수치에 의한 결과값들입니다.)

            $tmpPriceTotalA[$i] = $tmpPriceTotaly - $tmpDcArr[$i][$j];
            $tmpPriceTotal += $tmpPriceTotaly - $tmpDcArr[$i][$j];
            $tmpPriceTotalArry[] = $tmpPriceTotal;
           
  }

}

for( $j=0;  $cartsubData[company][$j] ; $j++ ) {

    for ( $i = 0; $cartsubData[company][$j][$i] ; $i++, $itemIndex++ ) { 
   
            echo "$cartsubData[company][$j][$i] / Dc : $tmpDcArr[$j]";
    }
}

$tmpDcArr[$j]의 값을 호출하면 아래와 같이 첫번째 값이 사라지고 두번째 값이 겹쳐나옵니다.

원하는 값은 아래와 같습니다.
Array[0][0] / Dc : 1230
Array[0][1] / Dc : 630
Array[1][0] / Dc : 110

그런데 결과값이 아래와 같이 나옵니다.
Array[0][0] / Dc : 630 <= 이값이 두번째 값이 나오네요.
Array[0][1] / Dc : 630
Array[1][0] / Dc : 110

무엇이 잘 못 되었을까요?

댓글 전체

장군전사님 답변 감사합니다.
말씀하신대로 echo "$cartsubData[company][$j][$i] / Dc : $tmpDcArr[$i][$j]; 이렇게 하면
값이

Array[0][0] / Dc : 1230
Array[0][1] / Dc : 630
Array[1][0] / Dc : 1230 <= 첫번째 값.

첫번째 값이 다시 나옵니다.
무엇이 문제인가요?
당연히 엉뚱한 값이 나올겁니다

배열은 $tmpDcArr[$i] = $tmpDc; 로 만들어 놓고 $tmpDcArr[$i][$j] 의 값을 가져오니 엉뚱한 값이 나올 수 밖에요...
$tmpDcArr[$i][$j] = $tmpDc; 로 수정하면 됩니다
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT