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개
배열내에 존재하는지 확인하는 in_array 함수 활용해보세요.
if(!in_array($list[$i]['wr_id'], $zin)) continue;
답변에 대한 댓글 5개
bo_1에 넣어지지 않는 값을 continue하고 싶습니다
if(in_array($list[$i]['wr_id'], $zin)) continue;
in_array에 !느낌표를 빼면
bo_1 배열값과 같은 wr_id가진 글들은 continue 되는걸 확인했는데요.
in_array에 !느낌표를 넣으면 모든 글이 제외가 되는데 왜 이런건지...
bo_1 배열값있는 글들 빼고 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>";
}
?>
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개
저도 이렇게 해봤었는데 다중 for문이라 continue가 첫번째 포문에 적용이 안되는거 같아요
모두 출력되네요
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
부정 !(느낌표)를 빼고 했더니 배열갯수만큼 continue되는것을 확인되었는데
느낌표를 붙히니
if(!in_array($list[$i]['wr_id'], $zin)) continue; 리스트가 출력이 1개도 안되네요..