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
무엇이 잘 못 되었을까요?
다음과 같이 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[$j]";
이렇게 되어야 하는게 아닌가요?
echo "$cartsubData[company][$j][$i] / Dc : $tmpDcArr[$i][$j];
이렇게 되어야 하는게 아닌가요?
echo "$cartsubData[company][$j][$i] / Dc : $tmpDcArr[$i][$j];
장군전사님 답변 감사합니다.
말씀하신대로 echo "$cartsubData[company][$j][$i] / Dc : $tmpDcArr[$i][$j]; 이렇게 하면
값이
Array[0][0] / Dc : 1230
Array[0][1] / Dc : 630
Array[1][0] / Dc : 1230 <= 첫번째 값.
첫번째 값이 다시 나옵니다.
무엇이 문제인가요?
말씀하신대로 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; 로 수정하면 됩니다
배열은 $tmpDcArr[$i] = $tmpDc; 로 만들어 놓고 $tmpDcArr[$i][$j] 의 값을 가져오니 엉뚱한 값이 나올 수 밖에요...
$tmpDcArr[$i][$j] = $tmpDc; 로 수정하면 됩니다