배열의 결과값이 다르게 나옵니다.

배열의 결과값이 다르게 나옵니다.

QA

배열의 결과값이 다르게 나옵니다.

답변 1

본문

https://sir.kr/qa/523330

윗 질답을 토대로 최신글을 작성하고 있습니다.

 

wr_content 중 게시물 하나는 아래와 같고 이와 같은 wr_content가 날짜별로 게시되어 있습니다.

 

평창한우마을대관령점@26,182/1,343$|평창한우마을면온점@18,358/1,420$|평창한우다래,866/13,235$|대관령한우프라자@2,734/12,327$|평창대관령한우일송정,395/9,146$|메밀꽃향기@8,563/5,149$|감자네@4,775/8,617$|메밀꽃필무렵@7,329/5,792$|봉평메밀미가연@6,285/2,088$|축협대관령한우타운@6,968/1,073$|와우대관령한우@3,759/4,200$|흔들바위,173/782$|황태회관@4,351/1,541$|방림메밀막국수@2,268/3,317$|허브나라농원@3,050/1,553$|식당가@3,674/2$|월이메밀닭강정@2,919/496$|봉평현대막국수@2,580/734$|다키닥팜@2,060/1,215$|삼교리동치미막국수대관령점@710/2,305$|고향막국수@1,004/1,984$|카페연월일@2,127/764$|디저트평창자연휴게소점@2,784/5$|루&루베이커리@2,533/189$|풀내음@1,791/825$|금강숯불닭갈비메밀막국수@1,376/1,060$|나뚜루평창휴게소상행점@2,433/1$|수미카페@1,942/403$|엘림커피본점@1,733/526$|편배기@941/1,315$|황태덕장@1,444/755$|부일식당@1,537/440$|미락식당@356/1,548$|메밀마당@1,098/799$|봉평메밀옛골초가집옛골@1,279/463$|두일막국수@724/991$|대관령감자옹심이@1,202/495$|진태원@889/806$|납작식당@1,209/479$|1997동굴갈비@1,447/144$|난다나@1,494/93$|두부메밀촌@1,132/435$|방림메밀막국수평창본점@703/818$|옥봉식당@715/762$|37.5평창점@1,379/84$|마추픽추@1,022/407$|파리바게뜨강원평창점@1,372/2$|대관령토종한우@930/431$|트리고@750/587$|대관령한우촌@1,235/45$|카페마카@1,022/240$|송어의집@892/347$|파리바게뜨횡계점@1,177/7$|카페앳모먼츠@1,148/28$|배스킨라빈스강원횡계점@1,166/7$|그집앞대관령본점@433/726$|싼타버거@1,060/90$|해와비@882/267$|이촌쉼터@770/373$|라마다평창하늘정원@1,095/22$|오대산산촌@1,048/50$|달빛미소@883/215$|스위스램@768/320$|남경식당@696/377$|대관령김치찌개집@916/147$|동이네막국수@750/292$|도암식당@709/313$|가시머리식당@407/610$|대관령한우국밥타운@871/106$|밀브릿지@371/599$|평창고메한우@910/51$|7HUNDRED@744/182$|바람의언덕@875/40$|BHC치킨용평리조트점@907/2$|선재길식당@684/224$|봉평차이나@611/276$|대관령한우한화리조트평창점@761/119$|꼬로베이@588/290$|남촌막국수@709/152$|대박식당@520/334$|유천막국수본점@561/280$|이디야커피대관령점@783/33$|파리바게뜨강원진부점@811/3$|평창우리한우타운@691/120$|봉평막국수@221/566$|토담막국수@516/256$|산수명산@489/280$|감자창고@607/158$|메미리@684/79$|롯데리아알펜시아리조트점@749/12$|대관령국수집@734/23$|바우파머스몰@664/87$|선비촌@540/209$|이화에월백하고@274/466$|이디야커피강원평창점@699/30$|메밀꽃사랑송어회@616/106$|휘닉스정육식당@722/0$|성주식당@498/223$|대관령자연애@551/163$|한촌설렁탕평창점@646/63$

 

위와 같은 wr_content에서 배열은 | 로 나뉘어져 있고 

" 업소명 @ 숫자1 / 숫자2 $ "

이렇게 구성되어 있습니다.

저는 여기에서 특정 업소명의 숫자2만 불러오는 과정을 아래와 같이 질답에서 얻었습니다.

 


$content="대관령국수집@733/23$|바우파머스몰@6~~~";
preg_match("|성주.*/([0-9]+)\\$|U", $content , $match);
echo $match[1];

 

이 답변을 토대로 


<?php for ($i = 0; $i < $list_count; $i++) {
preg_match("|바우.*/([0-9]+)\\$|U", $list[$i]['wr_content'], $match_rev);
echo '\'' . $match_rev[1] . '\',';
} ?>

이런 방식으로 특정 업체의 두번째 숫자만 불러오려고 합니다.

 

그런데 희한하게도 어떤 업체는 제대로 불러오고 어떤 업체는 불러오지 못하고 한 업체만 계속 불러옵니다.

위 예제처럼 "바우"가 들어간 업체명의 두번째 숫자는 잘 불러오는데


<?php for ($i = 0; $i < $list_count; $i++) {
preg_match("|일송정.*/([0-9]+)\\$|U", $list[$i]['wr_content'], $match_rev);
echo '\'' . $match_rev[1] . '\',';
} ?>

이런 식으로 다른 업체를 넣거나 하는 경우에는 또 불어오지를 못합니다.

 

정규식에서 한글 몇개만 바꿨을 뿐인데 답이 안나오는 이유를 알수가 없네요.

혹시 뒤의 숫자가 3자리수까지는 나오고 네자리수(x,xxx식으로 되어 있는)의 경우에는 추출을 못하는건지도 궁금합니다.

고수님들의 도움 부탁드립니다.

이 질문에 댓글 쓰기 :

답변 1

쉼표(,) 때문인것 같네요. 아래 처럼 추가해보세요.


preg_match("|일송정.*/([0-9,]+)\\$|U", $list[$i]['wr_content'], $match_rev);

네 숫자구분의 콤마 때문에 생긴 문제였습니다.
차트에 넣을 때에는 아라비아숫자만 인식하더라구요.
콤마를 넣어서 정규식을 돌려도 결국 차트에서 콤마를 인식못해서 str_replace를 통해 콤마를 제거하고 돌려 해결하였습니다.
좋은 지적 감사합니다.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 220
© SIRSOFT
현재 페이지 제일 처음으로