채택완료

배열 in_array 함수에 대해서 질문입니다.

매번 도움을 주셔서 감사합니다.

이번에도, 혼자해결하기엔 너무 어려운?것같아서 요렇게 질문드립니다ㅜㅜ

$arr = array();

food 란 필드엔 예를들어서

햄버거,햄버거,햄버거,피자,치킨,족발 요렇게 들어있고

$i가 한번 돌았을땐 $arr배열안엔

Array

(

  [햄버거]

)

가 들어가잖아요.

그것을 for문 안에서 체크하고싶습니다.

for($i=0; $row = sql_fetch_array($res); $i++){

  $arr[$row[food]] = $row[food];

 if(in_array($row[food],$arr))

{

 //들어있을때

}else{

//안들어있을때

}

}

요렇게 하니까 for문이 몇번을 돌든간에 다 안들어가있을때 else문을 타버립니다..

문법이틀렷나요..?..

|

답변 2개 / 댓글 1개

채택된 답변
+20 포인트

왜 연관배열을 쓰셨는지는 모르겠지만, 이렇게 하시면 됩니다.

Copy
$arr = array();

while($row = sql_fetch_array($res)) {

    if(!in_array($row['food'], $arr)) {

        array_push($arr, $row['food']);

    }

}

// $arr = ['햄버거', '피자', '치킨', '족발'];

array_key_exists 함수를 이용해보세요

Copy
if(array_key_exists($row['food'], $arr)) {

}

근데 코드가 이상하네요. for 문 바로 다음에 배열에 넣고 검사를하면 계속 true 가 될텐데요..

답변에 대한 댓글 1개

for문안에서
배열에 하나씩 담으려고 합니다.
그때 $arr 배열에 담으려고 하는것이 있으면 넘어가고
담으려고 하는것이 없으면 $arr 안에 담으려고합니다.

어떻게해야될까요..?

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