in_array()를 통해서 배열중 중복값이 있는지 검사하고자 합니다.

in_array()를 통해서 배열중 중복값이 있는지 검사하고자 합니다.

QA

in_array()를 통해서 배열중 중복값이 있는지 검사하고자 합니다.

본문

아래와 같은 코드를 통해서 중복되는 문자가 있는지 검사를 하려고 합니다.

 


$fruit = array("바나나","파인애플","사과");
if (in_array("파인애플", $fruit)) {
    echo "중복값이 있습니다";
} else {
 echo "중복값이 없습니다";
}

 

위 코드를 출력해 본 결과 정상적으로 코드가 작동을 합니다.

 

그런데 여분필드(wr_1)의 값을 가지고 온후 array()에 대입을 하면 원하는 결과가 나오지 않습니다.

여분필드 wr_1 에는 바나나,파인애플,사과 <= 이렇게 ','로 구분하여 저장이 되어 있습니다.

 


$wr_1_arr = $write['wr_1'];
$fruit = array($wr_1_arr);
if (in_array("파인애플", $fruit)) {
    echo "중복값이 있습니다";
} else {
 echo "중복값이 없습니다";
}

 

위 코드를 적용하니 wr_1값에 파인애플이 있음에도 "중복값이 없습니다" 가 출력이 됩니다.

$wr_1_arr 에 대입된 바나나,파인애플,사과 <= 를 하나의 문자로 인식해서 이러한 결과가 나오는 것일까요?

만일 그렇다면 어떻게 해야 ","를 구분으로 해서 하나씩 대입해 원하는 결과값을 얻을 수 있을까요?

가르침 부탁드립니다..

 

이 질문에 댓글 쓰기 :

답변 1

$write['wr_1'] = "바나나,파인애플,사과";

$wr_1_arr = $write['wr_1'];

$fruit = array($wr_1_arr);

이렇게 쓰시면...

$fruit = array("바나나,파인애플,사과");

와 같습니다.

$fruit = array("바나나","파인애플","사과");

이렇게 되야지 원하는 결과를 얻을수가 있는거지요.

 

결론적으로 말하자면....


$fruit = explode(",", $write['wr_1']);
if (in_array("파인애플", $fruit)) {
    echo "중복값이 있습니다";
} else {
 echo "중복값이 없습니다";
}

 

이렇게 하시면 됩니다.​

 

 

답변을 작성하시기 전에 로그인 해주세요.
전체 126,000 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT