PHP preg_按变化顺序匹配单词
假设我有一个PHP preg_按变化顺序匹配单词,php,preg-match,Php,Preg Match,假设我有一个数组(“things and stuff”,“the stuff”)将每个元素与另一个数组的每个元素进行比较-假设第二个数组是(“填充这些废话”,“填充和要做的事情”) 我想preg\u match任何通常相关的东西-我需要它匹配单词相同的元素,即使它们的位置已经改变-本质上我想“stuff”在这种情况下匹配“stuff the…” 最好的办法是什么 您可以简单地拆分第一个数组的字符串,以与第二个数组上的所有字符串值进行比较,示例如下: $array1 = array("things
数组(“things and stuff”,“the stuff”)我正在迭代的代码>将每个元素与另一个数组的每个元素进行比较-假设第二个数组是(“填充这些废话”,“填充和要做的事情”)代码>
我想preg\u match
任何通常相关的东西-我需要它匹配单词相同的元素,即使它们的位置已经改变-本质上我想“stuff”
在这种情况下匹配“stuff the…”
最好的办法是什么 您可以简单地拆分第一个数组的字符串,以与第二个数组上的所有字符串值进行比较,示例如下:
$array1 = array("things and stuff", "the stuff");
$array2 = array("stuff the blah", "stuff and things to do");
$result = array();
foreach($array1 as $val1){
$words1 = explode(" ", $val1);
$result[$val1] = 'not found';
foreach($array2 as $val2){
$words2 = explode(" ", $val2);
$intersect = array_intersect($words1, $words2);
$diff = array_diff($words1, $intersect);
if(empty($diff))
$result[$val1] = 'found';
}
}
var_dump($result);
参考资料:
这与preg_match无关,我建议将问题改为这样:我有两个字符串数组,我想从两个数组中找到至少包含一个常用词的字符串对。使用分解
将字符串转换为数组,然后array\u intersect
检查它们是否包含相同的单词。参见我的示例,就像@Barmar所说的。