어레이 혹은 여러 단어에서 검색 할때 관련된 질문입니다.

어레이 혹은 여러 단어에서 검색 할때 관련된 질문입니다.

QA

어레이 혹은 여러 단어에서 검색 할때 관련된 질문입니다.

본문

안녕하세요 큰 지식이 없어서 전문 용어가 없이 글을 작성하게 되었습니다. 

죄송합니다. 

 

예를 들면 

현대 기아 삼성 쉐보레 쌍용 벤츠 BMW 도요타 닛산 재규어 포드 폭스바겐 혼다 랜드로버 푸조 

자동차 처럼 위와 같이 자동차 브랜드 가 있을때 

사용자의 입력을 받아서 해당 카테고리에 DB에 넣으려고 하는데요 

(자동차 관련은 아니고 쉽게 예를 들기 위해 자동차를 사용하였습니다.) 

 

그런데 이런 입력을 받다보면 오타나 사용자들의 자신들만 쓰는 줄임말 등등 부르는 말들이 달라서 

그것을 통일 시키려고 하는데 이러다 보니 웹에서는 셀렉트박스를 사용하면 되지만 

엑셀로 내용을 전달 받는 경우 (엑셀업로드를 이용한 주문작성과 같이 엑셀에서 바로 웹으로) 

그런 경우에는 입력된 내용이 천차 만별이라 이를 통합 하는 방법을 모색하고 있는데요 

 

쉬운 예를 들면 

 

입력 값이 "샘숭" 이라고 내용을 받았을때 

 

이 내용을 아래와 같은 내용에서 검색을 하여 

-------------------------------------------------------- 

(각각의 어레이를 만든후) 

현대 현데 헌대 헌데 현다이 휸대 훈대 

기아 키아 기어 키어 KIA 

삼성 샘숭 삼생 르노삼성 르노 SAMSUNG 

쉐보레 쉐보래 시보레 시로베 쉐보렛 쉐보랫 

쌍용 쌩용 쌍옹 상용 SANGYONG 

벤츠 밴츠 벤쯔 밴쯔 벤스 벤츠 

BMW 비엠떠블류 비엠더블류 비앰떠블류 비엠떠블류 

-------------------------------------------------------- 

 

지금 입력된 값은 삼성이구나 해서 삼성으로 입력된 값을 변경 하는 것 입니다. 

 

 

대략 제가 생각한 코드는 

<?php 

$test2 = "샘숭"; 

$car_list = explode(";", "삼성;샘숭;삼생;르노삼성;르노;SAMSUNG"); 

  for ($k=0; $k<count($car_list); $k++) { 

      if(strpos($car_list[$k], $test2) !== false) { 

          echo $test2." ".$car_list[$k]; 

          break; 

      } 

  } 

?> 

이런 식으로 잘 이용하면 되지 않을 까 하여 테스트를 하고 있습니다만 

 

미처 제 지식으로 해결 안되는 부분이 

이 샘숭이란 녀석을 

현대 어레이, 삼성 어레이, 기아 어레이 등등의 여러 어레이 에서 

어떤 어레이에서 다시 검색을 시켜야 할지  부분을 먼저 골라야 하는데 그것을 어찌 연결 시킬지 

전혀 생각이 안떠올라서 질문을 올려 봅니다. 

 

이러한 문제로 고민해 보신 분들이나 기타 현장에서 작업하시는 분들은 

있을 법한 문제일 것같아 효율적인 방법을 찾고자 질문글을 올려 봅니다. 

 

감사합니다. 

(사실 이 글의 제목도 어찌 써야 할 지 모르겠네요 죄송합니다)

이 질문에 댓글 쓰기 :

답변 2

$keyword; //입력받은값

$brands = array('삼성','현대','기아'); 

 

$b_arr['삼성'] = array('샴성', '삼송', '삼숭'); //변형된 키워드

$b_arr['현대'] = array('현다이', '횬대', '현데'); 

$b_arr['기아'] = array('키아', '기어', 'KIA'); 

 

foreach($brands as $v) {

$keyword = str_replace($b_arr[$v], $v, $keyword); //변형된 키워드를 원래 브랜드로 변경

}

 

if( !in_array($keyword, $brands) ) {

echo '미등록 브랜드 : '.$keyword; //브랜드에 없는 키워드 입력값 추출

}

퍼뜩 드는 생각은

정확한 글           오타

삼성                샘숭

삼성                삼셩

현대                현데

현대                헌대

 

정 한다고 하면 이런 식으로 따로 오타 테이블 같은 걸 만들어서 검색을 하는 게 더 낫지 않나요?

 

근데 저는 별로 추천 안 하고 싶네요.

애초에 저런 식으로 하는 것 자체가 노가다고 데이터에 대한 정확성을 떨어뜨린다 생각이 듭니다.

데이터가 계속 쌓이다 보면 다른 데에도 속할 수 있는 단어가 나올 수도 있을 것 같아서요. 

 

저 같은 경우는 차라리 엑셀 파일을 temp 테이블 같은 데에다가 전부 입력을 합니다.

그런 후에 이 테이블을 사용자 화면에 뿌립니다.

여기에서 중요한 칼럼의 경우는 검사를 합니다.

예를 들어 브랜드라는 게 있다면 현재 입력한 브랜드 칼럼을 한 줄씩 읽어서 있는 건지 없는 건지 체크해서 없는 브랜드면 그 라인만 색깔을 줘서 화면에 표시를 해 주고 수정한 후에 다시 올리라고 합니다.

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

회원로그인

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