Copy
$val='1234';
if(strpos("'1234', '5678', '9011'", $val) == true) { echo '있다'; } else { echo '없다'; }
결과: 있다
Copy
$val='12';
if(strpos("'1234', '5678', '9011'", $val) == true) { echo '있다'; } else { echo '없다'; }
결과: 있다
제 생각엔 $val='1234'; 일 경우는 '1234' 와 일치하니 "있다"고
$val='12'; 일 경우는 '1234' 와 일치하지 않으니 "없다"가 맞는게 아닌가 싶은데 있다로 나옵니다.
제가 원하는건 따옴표 안에 데이터 값이 일치하는걸 원했는데... 어떻게 해야하나요..
답변 4개 / 댓글 3개
채택된 답변
+20 포인트
Feelz996
3년 전
'1234', '5678', '9011'
이걸 모두 문자열로 인식하기 때문에 그렇습니다. $val 값이 '12 라도 저안에 똑같은 문자열이 포함되어 있기 때문에 있다고 표시될거에요.
작성자분께서 원하시는 결과값을 얻을려면
$array=array("1234", "5678" "9011");
if(in_array($val, $array)){echo "있다";}else{echo "없다"}
이런식으로 처리하셔야지 원하시는 작동방식일것 같습니다.
답변에 대한 댓글 1개
타버린나무
3년 전
3년 전
궁금했던사항인데 감사합니다.
3년 전
https://www.php.net/manual/en/function.in-array.php
in_array() 검토해 보세요.
답변에 대한 댓글 1개
블랙캣77
3년 전
strpos 는 앞뒤 어떤 글자가 있던지 없던지 포함만 되면 되는거라서 썽피리님 말씀 처럼 배열로 수정해서 사용을 하셔야 할거 같습니다.
답변에 대한 댓글 1개
답변을 작성하려면 로그인이 필요합니다.
strpos를 쓰는게 아니였군요. 또 하나 배워갑니다. 감사합니다.