테스트 사이트 - 개발 중인 베타 버전입니다

if문 질문 채택완료

icep 7년 전 조회 1,902

보드 여분필드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개

채택된 답변
+20 포인트
7년 전

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

 

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

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

i
icep
7년 전
아.. 감사합니다 덕분에 왜 그런지 알게 됬습니다.. 해당 글쓰기 스킨이 무한스크롤이라 그런듯 싶습니다. 목록갯수를 늘려주니 뜨네요 ㅎㅎ;

댓글을 작성하려면 로그인이 필요합니다.

7년 전

방법1 만 말씀드리면..

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

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

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

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

i
icep
7년 전
공지부분을 삭제해도 같은 증상이네요 ㅠ

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인