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 "중복값이 없습니다";
}
이렇게 하시면 됩니다.
답변을 작성하시기 전에 로그인 해주세요.