如何在另一个字符串中查找字符串元素并在PHP中删除它们

时间:2010-05-03 15:06:17

标签: php string

例如:

FirstString='apple,gold,nature,grass,class'
SecondString='gold,class'

结果必须是:

ResultString='apple,nature,grass'

3 个答案:

答案 0 :(得分:2)

$first = explode(',',$firstString);
$second = explode(',',$secondString);

现在你有阵列,你可以随心所欲地做任何事情。

$result = array_diff($first, $second);

答案 1 :(得分:0)

我确信有一个函数可以做到但是你总是可以分解字符串并对每个字符串做一个foreach并做一些字符串比较并构建一个新的字符串。您还可以拆分第二个字符串并创建正则表达式并执行preg_replace来替换字符串中的值。

答案 2 :(得分:0)

这是一种简单的方法(肯定必须有更高效的方法):

首先,您可能希望将这些以逗号分隔的字符串分开并将它们放入数组中(使用explode函数):

$array1 = explode(',' $firstString);
$array2 = explode(',' $secondString);

然后,您可以使用in_array函数循环第一个数组并检查它是否包含第二个数组的单词(如果是,请使用unset函数将其删除):

// loop
foreach( $arra1 as $index => $value){
    if( in_array ( $value , $array2 ) )
        unset($array1[$index]); // delete that word from the array
}

最后,您可以使用implode函数创建一个包含结果的新字符串:

$result = implode(',' , $array1);

就是这样:D