for문에서 continue

for문에서 continue

QA

SIR 제작의뢰 - 견적무료/익명보정/호스팅, DB 이전/단기개발. 이젠 ' 의뢰인'이 원하는 '제작자'에게만 연락처를 알릴 수 있습니다.

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

채택됨

몰라무서워님의 답변

$list[] = get_list(...);

 

이렇게 $i 첨자를 없애면 됩니다

 

array_push($list, get_list(...));

 

이렇게 해도 되고요

주소복사
채택됨
답변의 댓글
답변을 작성하시기 전에 로그인 해주세요.
전체 67,603 | RSS
고마운 분의 도움으로 질문을 해결하셨다면, 채택을 눌러서 감사의 마음을 전하세요.
어떻게 질문해야 할지 모른다면 질문하는 방법을 읽어 보신후 질문해 보세요.
QA 내용 검색

회원로그인

진행중 포인트경매

  1. 그누위즈의 PHP&MySQL 웹 프로그래밍 입문+활용

    참여9 회 시작18.11.16 13:47 종료18.11.21 13:47
  2. 강정 감귤 5kg 한박스

    참여37 회 시작18.11.13 20:00 종료18.11.18 20:00
  3. 다래사랑) 레드키위 or 골드키위 3Kg 한박스

    참여32 회 시작18.11.13 11:45 종료18.11.18 11:45

(주)에스아이알소프트 (06253) 서울특별시 강남구 도곡로1길 14, 6층 624호 (역삼동, 삼일프라자) 대표메일:admin@sir.kr
사업자등록번호:217-81-36347 대표:홍석명 통신판매업신고번호:2014-서울강남-02098호 개인정보보호책임자:이총

© SIRSOFT