테스트 사이트 - 개발 중인 베타 버전입니다

strpos 사용법 문의 채택완료

타버린나무 3년 전 조회 2,410

</p>

<p>$val='1234';

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

<p>

결과: 있다

 

</p>

<p>$val='12';

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

<p>

결과: 있다

 

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

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

 

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

 

 

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

답변 4개

채택된 답변
+20 포인트
F
3년 전
'1234', '5678', '9011' 

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

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

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

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

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

타버린나무
3년 전
답변 감사합니다.
strpos를 쓰는게 아니였군요. 또 하나 배워갑니다. 감사합니다.

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

m
3년 전

궁금했던사항인데 감사합니다.

 

로그인 후 평가할 수 있습니다

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

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

in_array() 검토해 보세요.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

타버린나무
3년 전
답변 감사합니다.

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

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

답변에 대한 댓글 1개

타버린나무
3년 전
그렇군요.. '1234' 따옴표가 있어서 한 묶음으로 생각했어요 ^^;
답변 감사합니다.

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

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

로그인