1

我有 2 个字符串:

Ass. Présentation Chiara D29,5cm
Ass. Présentation Chiara Anthracite D29,5cm

我只需要在第二个字符串中保留“Anthracite”这个词,因为这个词不在第一个字符串中

有可能做这样的事情吗?

4

4 回答 4

1

您可以将字符串拆分为一个以空格分隔的数组,然后从项目数最多的数组中删除项目数最少的数组,剩下的就是您需要的单词。

编辑:

$string1 = "Ass. Présentation Chiara D29,5cm"
$array1 = explode(" ",$string1);

$string2 = "Ass. Présentation Chiara Anthracite D29,5cm"
$array2 = explode(" ",$string2);

$difference = array_diff($array2,$array1);
于 2012-05-03T08:13:52.720 回答
1

也许不是最好的方法,但尝试使用explodearray_diff像这样:

$arr1 = explode(' ', $str1);
$arr2 = explode(' ', $str2);
$diff = array_diff($arr2, $arr1);

$diff将是存在于$str2但不存在于中的单词数组$str1

于 2012-05-03T08:16:04.740 回答
0
$words1 = explode(" ",$str1);
$words2 = explode(" ",$str2);

print_r(array_diff($words1,words2);

http://php.net/manual/en/function.array-diff.php

于 2012-05-03T08:16:20.780 回答
0

尝试这个:

<?php

        $keywordString = "Ass. Présentation Chiara D29,5cm";
        $keywordArray  = explode(" ", $keywordString);        

        $string = "Ass. Présentation Chiara Anthracite D29,5cm";
        $stringArray = explode(" ", $string);


        foreach ($keywordArray as $keyword)
                $stringArray = preg_grep("/{$keyword}/i", $stringArray, PREG_GREP_INVERT);

        echo "<pre>";
        print_r($stringArray);
        echo "</pre>";
        exit;
?>
于 2012-05-03T08:26:06.443 回答