Я взаимодействую с API JSON, который предоставляет адрес в ответ на запрос. Затем я помещаю возвращаемые элементы адреса в таблицу базы данных MYSQL.Удалить повторяющиеся строки адреса из строки в PHP
Данные возвращаются как AddressLine1, AddressLine2, Region, Postcode. Проблема заключается в том, что качество данных довольно низкое, и многие данные AddressLine1 дублируются внутри элемента. Например, типичный возврат может быть
123 My House 123 My House, My Road
Я пытаюсь выяснить, как я могу удалить второе вхождение «123 My House» без снятия «Моей» из «Моей Дороги» части.
Я пробовал все виды регулярных выражений, но мое регулярное выражение fu слабое! Я также попытался сделать вывод, но все, что я могу сделать, это удалить все повторяющиеся слова, кроме первого экземпляра, который мне не помогает.
Я думаю, мне нужно каким-то образом держать первое вхождение слова и удаление всех остальных, используя запятую в качестве разделителя для каждой части так, что я в конечном итоге с является ...
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
Можете ли вы поделиться API JSON, который вы используете? – Gordon