PHP 中多个单词的字符串比较

String comparison with multiple words in PHP

我仍在处理我的图书馆数据库。

使用 PHP,我如何比较具有不同顺序的多个单词的字符串,例如 Gaius Julius CaesarCaesar Gaius Julius 以查看它们是否匹配?比较前将删除逗号、破折号、双空格等。

将字符串放入两个数组并检查 in_array() 是否第一个数组的每个元素都包含在第二个数组中可能是一对字符串的合理解决方案,但它似乎浪费 CPU 从 MariaDB table 检查超过 5,000 个名字的列表(5,000 × 5,000 = 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()