배열 속에서 특정 단어가 들어간 배열에서 숫자만 뽑아오고 싶습니다. 채택완료
게시글에 아래와 같은 배열이 있습니다.
대관령국수집@733/23$|바우파머스몰@664/87$|선비촌@538/209$|이화에월백하고@274/467$|이디야커피강원평창점@699/30$|휘닉스정육식당@722/0$|성주식당@497/223$|메밀꽃사랑송어회@612/106$|허생원봉평메밀국수@555/153$|한촌설렁탕평창점@645/63$
배열은 | 로 나뉘어져 있고
" 업소명 @ 숫자1 / 숫자2 $ "
이렇게 구성되어 있습니다.
저는 여기에서 특정 업소명의 숫자2만 불러오려고 하는데 어렵네요.
예를 들어 모든 게시물이 위와 같은 배열에 각각의 숫자가 다른데 그중 "성주식당"의 "성주"가 들어간 배열값에서 숫자2만 따로 뽑아오고 싶은데 이럴 경우에는 어떤 방법을 써야 할까요?
고수님들의 의견을 구합니다
답변 2개
정규식으로
$content="대관령국수집@733/23$|바우파머스몰@6~~~";
preg_match("|성주.*/([0-9]+)\\$|U", $content , $match);
echo $match[1];
explode, strpos 등으로 가능 하지만 가장 간단한 것은 정규식입니다
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
</p>
<p><div id="my"></div>
<script>
targetString = "성주";
basicString = "대관령국수집@733/23$|바우파머스몰@664/87$|선비촌@538/209$|이화에월백하고@274/467$|이디야커피강원평창점@699/30$|휘닉스정육식당@722/0$|성주식당@497/223$|메밀꽃사랑송어회@612/106$|허생원봉평메밀국수@555/153$|한촌설렁탕평창점@645/63$";
for (i of basicString.split("$|")) {
if (i.split("/")[0].indexOf(targetString) > -1) {
findString = i.split("/")[1];
break;
}
else findString = "없음";
}
my.innerText = findString;
</script></p>
<p>
답변에 대한 댓글 4개
빈칸인 점을 감안해서...
if (i.split("/")[0].indexOf(targetString) > -1 && hz.value.trim() != "")
이게 아마 모던 스크립트로 하는 방법이 있을 거에요. 저는 20년 전 레거시 스크립트입니다.ㅋ
잘 작동하는데 정규식이 조금 더 편해보여서 채택하지 못하였습니다.
신경써주셔서 거듭 감사합니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
explode만 한참 파고 있었는데 이렇게 쉽게 나오네요.
소중한 답변 감사드립니다.