У меня есть CSV-файл, который содержит названия компаний. Я хотел бы сравнить это с моей базой данных. Чтобы иметь более чистые и близкие совпадения, я думаю об исключении некоторых суффиксов компании, таких как «inc», «inc», «, inc.» или ‘, inc’. Вот мой пример кода:
$string = 'Inc Incorporated inc.';
$wordlist = array("Inc","inc."," Inc.",", Inc.",", Inc"," Inc");
foreach ($wordlist as &$word) {
$word = '/\b' . preg_quote($word, '/') . '\b/';
}
$string = preg_replace($wordlist, '', $string);
$foo = preg_replace('/\s+/', ' ', $string);
echo $foo;
Моя проблема здесь в том, что «вкл.» не удаляется. Я предполагаю, что это как-то связано с preq_quote. Но я просто не могу понять, как это решить.
Попробуй это. Это может включать жонглирование типов в некоторый момент, но будет иметь желаемый результат
$string = 'Inc Incorporated inc.';
$wordlist = array('Inc', 'inc.');
$string_array = explode(' ', $string);
foreach($string_array as $k => $a) {
foreach($wordlist as $b) {
if($b == $a){
unset($string_array[$k]);
}
}
$string_array = implode('', $string_array);
Попробуй это :
$string = 'Inc incorporated inc.';
$wordlist = array("Inc","inc.");
foreach ($wordlist as $word) {
$string =str_replace($word, '', $string);
}
echo $string;
ИЛИ ЖЕ
$string = 'Inc Incorporated inc.';
$wordlist = array("Inc","inc.");
$string = str_replace($wordlist, '', $string);
echo $string;
Это будет выводиться как «корпорация» …
Если вы хотите использовать «Incorporated» в качестве результата, сделайте «I» маленьким … и затем запустите мой код выше (первый) …
Вы можете использовать это
$string = 'Inc Incorporated inc.';
$wordlist = array("Inc "," inc.");
$foo = str_replace($wordlist, '', $string);
echo $foo;
Запустите этот код Вот
Это будет работать для любого количества элементов в массиве …
$string = 'Inc Incorporated inc.';
$wordlist = array("Inc");
foreach($wordlist as $stripped)
$string = preg_replace("/\b". preg_quote($stripped,'/') ."(\.|\b)/i", " ", $string) ;
$foo = preg_replace('/\s+/', ' ', $string);
echo $foo;