Сравнение строк с несколькими словами в переполнении стека

Я все еще работаю над своей библиотечной базой данных.

С помощью PHP, как я могу сравнить строки с несколькими словами в другом порядке, например Gaius Julius Caesar а также Caesar Gaius Julius чтобы увидеть, совпадают ли они? Запятые, тире, двойные пробелы и т. Д. Будут удалены перед сравнением.

Поместить строки в два массива и проверить с in_array() если каждый элемент первого входит во второй, это может быть разумным решением для одной пары строк, но, по-видимому, тратится много времени на проверку списка из более чем 5000 имен из таблицы MariaDB (5000 × 5000 = 25 000 000 сравнений).

Предложения?

0

Решение

Сделай это так:

$a = "Gaius Julius Caesar";
$b = "Caesar Gaius Julius Putin";
$ar1 = explode(' ', $a);
$ar2 = explode(' ', $b);
$ar3 = array_intersect($ar1, $ar2);
print_r($ar3);

Урожайность

Array ( [0] => Gaius [1] => Julius [2] => Caesar )

Посмотрите, совпадают ли они — просто сравните их count()

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector