if문 배열 비교 채택완료

list.skin.php for문 중

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

if($list[$i]['wr_id'] != $board['bo_1']) continue; //bo_1 : 50  값이 1개

 

 

여분필드값이 여러개 값이든 배열이면 어떻게 if문을 해야할지..

bo_1 : 70|80|90|100|111|112 값이 여러개

 

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

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

if($list[$i]['wr_id'] != $zin[0]) continue;

if($list[$i]['wr_id'] != $zin[1]) continue;

if($list[$i]['wr_id'] != $zin[2]) continue;

if($list[$i]['wr_id'] != $zin[3]) continue;

if($list[$i]['wr_id'] != $zin[4]) continue;

if($list[$i]['wr_id'] != $zin[5]) continue;

 

if문이 여분필드 배열갯수만큼 늘어나서 할수 없을까요?

 

답변 2개

채택된 답변
+20 포인트

배열내에 존재하는지 확인하는 in_array 함수 활용해보세요.

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

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

답변에 대한 댓글 5개

eyekiss님 저번에도 답변해주셨는데 요번에도 답변 해주셔서 감사합니다 ㅎ

부정 !(느낌표)를 빼고 했더니 배열갯수만큼 continue되는것을 확인되었는데

느낌표를 붙히니
if(!in_array($list[$i]['wr_id'], $zin)) continue; 리스트가 출력이 1개도 안되네요..
구할려고하는 값이 뭔지 모르겠네요??
in_array 는 배열내에 그 값이 존재하면 true 가 됩니다.
여분필드 bo_1에 특정 글의 wr_id를 배열로 넣어서
bo_1에 넣어지지 않는 값을 continue하고 싶습니다

if(in_array($list[$i]['wr_id'], $zin)) continue;
in_array에 !느낌표를 빼면
bo_1 배열값과 같은 wr_id가진 글들은 continue 되는걸 확인했는데요.
in_array에 !느낌표를 넣으면 모든 글이 제외가 되는데 왜 이런건지...
bo_1 배열값있는 글들 빼고 continue되야 하는거 아닌가요?ㅜㅜ
continue 를 잘못 이해하는건 아닌가요??
아래의 예제를 참조해보세요..
<?
$bo_1 = "70|80|90|100|111|112";
$wr_id = array('50','60','70','80','90');
$zin = explode("|",$bo_1);
for($i=0; $i<sizeof($wr_id); $i++) {
if(in_array($wr_id[$i],$zin)) continue;
echo $wr_id[$i]."<br>";
}
?>
eyekiss님
if(!in_array($list[$i]['wr_id'], $zin)) continue; 잘 됩니다
제가 문제였네요..ㅠㅠ
해당 글쓰기 스킨이 무한스크롤에 목록수가 정해져 있어서 안뜨는거였네요..
목록수를 해당 wr_id까지 나오겠끔 늘려주면 나오네요..
매번 친절한 답변 감사합니다

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

혹 각각 원하시면 

 

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

$counter = count($zin);

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

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

답변에 대한 댓글 1개

onlymilk47님 답변 감사합니다
저도 이렇게 해봤었는데 다중 for문이라 continue가 첫번째 포문에 적용이 안되는거 같아요
모두 출력되네요

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

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

로그인
🐛 버그신고