我还在处理我的图书馆数据库。
使用PHP,如何将字符串与不同顺序的多个单词进行比较,例如Gaius Julius Caesar
和Caesar Gaius Julius
,看看它们是否匹配?在比较之前,将删除逗号,短划线,双空格等。
要将字符串放入两个数组中,并检查in_array()
第一个元素的每个元素是否包含在第二个数组中,对于单个字符串可能是一个合理的解决方案,但这似乎是浪费CPU用于检查MariaDB表中5,000多个名称的列表(5,000×5,000 = 25,000,000个比较)。
建议?
答案 0 :(得分:1)
这样做:
$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()