Я все еще работаю над своей библиотечной базой данных.
С помощью PHP, как я могу сравнить строки с несколькими словами в другом порядке, например Gaius Julius Caesar
а также Caesar Gaius Julius
чтобы увидеть, совпадают ли они? Запятые, тире, двойные пробелы и т. Д. Будут удалены перед сравнением.
Поместить строки в два массива и проверить с in_array()
если каждый элемент первого входит во второй, это может быть разумным решением для одной пары строк, но, по-видимому, тратится много времени на проверку списка из более чем 5000 имен из таблицы MariaDB (5000 × 5000 = 25 000 000 сравнений).
Предложения?
Сделай это так:
$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()
Других решений пока нет …