strpos 사용법 문의

strpos 사용법 문의

QA

strpos 사용법 문의

본문


$val='1234';
if(strpos("'1234', '5678', '9011'", $val) == true) { echo '있다'; } else { echo '없다'; }

결과: 있다

 


$val='12';
if(strpos("'1234', '5678', '9011'", $val) == true) { echo '있다'; } else { echo '없다'; }

결과: 있다

 

제 생각엔  $val='1234'; 일 경우는 '1234' 와 일치하니 "있다"고

 $val='12'; 일 경우는 '1234' 와 일치하지 않으니 "없다"가 맞는게 아닌가 싶은데 있다로 나옵니다.

 

제가 원하는건 따옴표 안에 데이터 값이 일치하는걸 원했는데...  어떻게 해야하나요..

 

 

이 질문에 댓글 쓰기 :

답변 4

'1234', '5678', '9011' 

이걸 모두 문자열로 인식하기 때문에 그렇습니다. $val 값이 '12 라도 저안에 똑같은 문자열이 포함되어 있기 때문에 있다고 표시될거에요. 

작성자분께서 원하시는 결과값을 얻을려면 

$array=array("1234", "5678" "9011");

if(in_array($val, $array)){echo "있다";}else{echo "없다"} 

이런식으로 처리하셔야지 원하시는 작동방식일것 같습니다. 

strpos 는 앞뒤 어떤 글자가 있던지 없던지 포함만 되면 되는거라서 썽피리님 말씀 처럼 배열로 수정해서 사용을 하셔야 할거 같습니다.

https://www.php.net/manual/en/function.in-array.php

in_array() 검토해 보세요.

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

회원로그인

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