게시판 리스트 for안에 for를 한번더 사용 코드 좀 봐주세요. 채택완료
아래처럼 코드를 넣었는데요.
print_r($apercent_30); 값이 제대로 안나오네요.
뭐가 잘못 된건지 아시는분 도움 좀 부탁드립니다.
리스트 코드
Copy
for ($i=0; $i<count($list); $i++) {
for ($t = 0; $t < count($awr_body_28); $t++) {
$awr_body_28_c = explode("-",$awr_body_28[$t]);
if($awr_body_28_c[3]){
if($awr_body_28_c[4]){
$aval_28 = $awr_body_28_c[3] - $awr_body_28_c[4];
} else {
$aval_28 = $awr_body_28_c[3] - $awr_body_28_c[2];
}
$afull_28 = $awr_body_28_c[3];
$apercent_28 = $aval_28 / $afull_28 * 100;
$apercent_29 = sprintf("%.0f", $apercent_28);
$apercent_30[$t] = $apercent_29;
//$apercent_30[] = $apercent_29; 이거도안되고
//echo $apercent_29; 여기에 출력하면 아래처럼 정확한 값이 나온다.
// list for 첫번째 754017 정상
// list for 두번째 4540 정상
}
}
// 값이 제대로 안나옵니다.
print_r($apercent_30);
}
[참고1] $apercent_30[$t] 했을때 아래처럼 나옵니다.
Copy
list for 첫번째
Array
(
[0] => 75
[1] => 40
[2] => 17
)
list for 두번째
Array
(
[0] => 75
[1] => 40
[2] => 45
[5] => 40
)
[참고2] $apercent_30[] 했을때 아래처럼 나옵니다.
Copy
list for 첫번째
Array
(
[0] => 75
[1] => 40
[2] => 17
)
list for 두번째
Array
(
[0] => 75
[1] => 40
[2] => 17
[3] => 45
[4] => 40
)
정확한 값은 아래처럼 나와야합니다.
Copy
list for 첫번째
Array
(
[0] => 75
[1] => 40
[2] => 17
)
list for 두번째
Array
(
[0] => 45
[1] => 40
)
답변 1개
채택된 답변
+20 포인트
4년 전
당연히 지금은 루프가 돌면서
$apercent_30 배열이 추가추가 되니까 한번에 출력되는거 같습니다.
unset으로 배열을 비워줘야 할듯합니다.
Copy
for ($i=0; $i<count($list); $i++) {
for ($t = 0; $t < count($awr_body_28); $t++) {
$awr_body_28_c = explode("-",$awr_body_28[$t]);
if($awr_body_28_c[3]){
if($awr_body_28_c[4]){
$aval_28 = $awr_body_28_c[3] - $awr_body_28_c[4];
} else {
$aval_28 = $awr_body_28_c[3] - $awr_body_28_c[2];
}
$afull_28 = $awr_body_28_c[3];
$apercent_28 = $aval_28 / $afull_28 * 100;
$apercent_29 = sprintf("%.0f", $apercent_28);
$apercent_30[$t] = $apercent_29;
//$apercent_30[] = $apercent_29; 이거도안되고
//echo $apercent_29; 여기에 출력하면 아래처럼 정확한 값이 나온다.
// list for 첫번째 754017 정상
// list for 두번째 4540 정상
}
// 값이 제대로 안나옵니다.
print_r2($apercent_30);
unset($apercent_30); // 배열을 초기화한다.
}
}
로그인 후 평가할 수 있습니다
답변에 대한 댓글 3개
4년 전
4년 전
추가로 해당 루프 아래에
배열을 선언하시는것도 나을거같습니다.
만약 if 조건에 맞지않아서 배열이 안생기면
unset시 빈 배열을 초기화하는건 또 맞지 않는 코드니까요
[code]
$apercent_30 = array(); // 빈 배열 선언
$awr_body_28_c = explode("-",$awr_body_28[$t]);
[/code]
배열을 선언하시는것도 나을거같습니다.
만약 if 조건에 맞지않아서 배열이 안생기면
unset시 빈 배열을 초기화하는건 또 맞지 않는 코드니까요
[code]
$apercent_30 = array(); // 빈 배열 선언
$awr_body_28_c = explode("-",$awr_body_28[$t]);
[/code]
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
아주 잘 되네요.