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; 때문이지 않을까 추측됩니다. (공지글인 경우)
윗라인을 임시 삭제해보면, 그 문제인지 확인이 가능할 것 같습니다.