if문 질문

if문 질문

QA

if문 질문

본문

보드 여분필드bo_1에 넣은 배열에 값만 리스트에 띄우고자 하는데요.

 

방법1

$zin = explode("|",$board['bo_1']);

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

     if($list[$i]['is_notice']) continue;

     if(!in_array($list[$i]['wr_id'], $zin)) continue;

 

}

in_arrayd앞에 !(느낌표)를 제거 하니

여분필드bo_1에 넣은 값과 wr_id가 같은 글들은 제외되고 따른 글들은 잘나오는데

!(느낌표)를 붙이면

모든 글들이 안나옵니다. bo_1과wr_id가 같은 글은 나와야할텐데..  무슨 문제가 있는걸까요?..

 

 

방법2

$zin = explode("|",$board['bo_1']);
$counter = count($zin);

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

    if($list[$i]['is_notice']) continue;
    for($k=0;$k<$counter;$k++){
        if($list[$i]['wr_id'] != $zin[$k]) {continue ;}
    }

 

}

위처럼 했을때 리스트가 모두 출력됩니다.  continue가 두번째 for문으로 건너뛰기 때문인가요??

첫번쨰 for문으로 건너뛰기 할려면 어떻게 해야할까요?..

 

이 질문에 댓글 쓰기 :

답변 2

for문 바로 위에 print_r($zin); 넣고

 

 if(!in_array($list[$i]['wr_id'], $zin)){echo $list[$i]['wr_id']; continue; } 이렇게 해서 비교 해보세요

 

방법1 만 말씀드리면..

if(!in_array($list[$i]['wr_id'], $zin)) continue; 에서  

bo_1과wr_id가 같은 글이 나와야 하는데, 나오지 않는 이유는..

그 윗라인..  if($list[$i]['is_notice']) continue; 때문이지 않을까 추측됩니다. (공지글인 경우)

윗라인을 임시 삭제해보면, 그 문제인지 확인이 가능할 것 같습니다.

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

회원로그인

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