for문에서 continue

for문에서 continue

QA

for문에서 continue

본문

for문을 돌리면서 행을 배열에 넣는다고 할 때 조건이 맞지 않는 행은 continue를 사용하여 배열에 넣는것을 막는 경우가 있습니다.

 

예를들어

for ($i=0; $i<10; $i++) {

            $row = sql_fetch(" select * from {$write_table} where wr_id = '{$arr_notice[$k]}' ");

            if (!$row['wr_id']) continue;

            $list[$i] = get_list($row, $board, $board_skin_url, G5_IS_MOBILE ? $board['bo_mobile_subject_len'] : $board['bo_subject_len']);

}

 

위와같은 경우에서 중간중간 continue가 실행되었고 이후 $list배열을 print_f 했다면,

Array
(
    [0] => Array
        (
            [wr_id] =>
            [wr_num] =>
            [wr_reply] => 

         )

     [2]=> Array
        (
            [wr_id] =>
            [wr_num] =>
            [wr_reply] => 

         )

 

처럼 인덱스가 붙어있지 않고 중간 중간 값이 비는 경우($k값이 1일 때 continue 실행)가 생깁니다.

이때 $list 배열을 그대로 쓰면 중간 값이 비어있기 때문에 불편해지는데요, 보통 이런 경우 어떻게 코딩하시나요?

 

예상답변 1번 : contine 직전에 --$i를 추가하여 $i증가를 상쇄한다.

예상답변 2번 : 배열에 빈값이 있는 경우 앞으로 정리해주는 라이브러리 함수를 사용한다.

 

이 질문에 댓글 쓰기 :

답변 1

답변을 작성하시기 전에 로그인 해주세요.
전체 660
QA 내용 검색

회원로그인

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