쿼리에 대한 응답으로 주소를 제공하는 JSON API와 상호 작용하고 있습니다. 그런 다음 반환 된 주소 요소를 MYSQL 데이터베이스 테이블에 넣습니다.PHP의 문자열에서 중복 주소 행을 제거하십시오.
데이터는 AddressLine1, AddressLine2, Region, Postcode로 반환됩니다. 내가 가진 문제는 데이터의 품질이 상당히 낮고 많은 AddressLine1 데이터가 요소 내에서 복제된다는 것입니다. 예를 들어, 일반적인 수익 내가 "내" "내 길"에서 일부를 제거하지 않고 "123 내 집"의 두 번째 발생을 제거 할 수있는 방법을 해결하기 위해 노력하고있어
123 My House 123 My House, My Road
수 있습니다.
나는 모든 종류의 정규식을 시도했지만 정규식은 약하다! 나는 또한 내파를 시도했지만, 내가 관리 할 수있는 것은 모든 도움이되지 않는 첫 번째 인스턴스를 제외한 모든 중복 된 단어를 제거하는 것입니다.
나는 ... 나는 단어의 첫 발생을 유지하고 있습니다 함께 그래서 내가 무엇을하게 될 겁니다 각 부분에 대한 구분 기호로 쉼표를 사용하는 모든 사람을 제거하는 방법이 필요 추측
123 My House, My Road
누구든지 올바른 방향으로 나를 가리킬 수 있습니까? 문자열을 쉼표로 배열로 분할 한 다음 배열의 각 부분을 중복으로 검사하고 제거한 다음 다시 배열을 문자열로 재구성해야 할 필요가 있습니까? 아마도? 나는 이런 식으로 그것을 관리했습니다
... 는$string = "123 My House 123 My House, My Road";
$split = (explode(',', $string));
foreach($split as $section){
$cleaned = implode(' ',array_unique(explode(' ', $section)));
if (!empty($result)){
$result = $result." ,";
}
$result = $result.$cleaned;
}
echo $result;
는 사람이 더 우아한 솔루션을 제공 할 수 있습니까?
제안 :'substr (0, i)'가'substr (i, i)'와 같은지 테스트하고, 문자열의 한 부분이 같은지 테스트한다. 부품을 따라 가면서 부품의 길이를 천천히 연장시킨다). 나는 그것을 정규 표현식으로 표현할 수있는 방법이 있다고 확신한다.- 전반적으로 이것은 꽤 복잡한 문제이지만 잘못된 데이터를 정리하는 데는 거의 모든 경우에 적합한 솔루션입니다. – deceze
사용중인 JSON API를 공유 할 수 있습니까? – Gordon