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개 / 댓글 6개
배열내에 존재하는지 확인하는 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>";
}
?>
혹 각각 원하시면
$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;}
}
}
답변을 작성하려면 로그인이 필요합니다.
부정 !(느낌표)를 빼고 했더니 배열갯수만큼 continue되는것을 확인되었는데
느낌표를 붙히니
if(!in_array($list[$i]['wr_id'], $zin)) continue; 리스트가 출력이 1개도 안되네요..