我想比较两个字符串并删除出现在第二个字符串中的任何字符。 例如:PHP:删除在另一个字符串中找到的字符串字符
$stringA="abcdefg" ;
$stringB="ayfcghifh" ;
我想$ stringB
是"yhih"
。有什么办法可以做到吗? 感谢您的帮助......
我想比较两个字符串并删除出现在第二个字符串中的任何字符。 例如:PHP:删除在另一个字符串中找到的字符串字符
$stringA="abcdefg" ;
$stringB="ayfcghifh" ;
我想$ stringB
是"yhih"
。有什么办法可以做到吗? 感谢您的帮助......
str_replace(str_split($stringA),'',$stringB);
回声ereg_replace( “[” $ stringA。 “]”, “”,$ stringB);
将是一个方便的方法。
或者使用的preg_replace()
$stringB = preg_replace('/[' . preg_quote($stringA, '/') . ']/', '', $stringB);
另外一个好处是,你可以不区分大小写了/ i修饰符和Unicode支持与/ U。
您可以使用str_replace()
中的多个针从$stringA
中删除每个字符。假设我们正在谈论的单字节编码,可以使用str_split()
每个字符,它给你分开:
$stringB = str_replace(str_split($stringA, 1), '', $stringB)
关于单字节编码的好处。 – 2010-07-26 22:11:53
好主意,但糟糕的执行,你应该使用的preg_replace()来代替,如额日格已被弃用5.3。如果你不介意,我会将它附加到你的答案上。 – 2010-07-26 22:11:21
我会强烈反对ereg_replace。它在PHP 5.3中折旧。对于这样简单的事情,str_replace可以做得很好,不需要正则表达式。 – 2010-07-26 22:12:03
我肯定会推荐'str_replace()'的方法,因为它更灵活,并且它的性能在同一个数量级上。 – 2010-07-26 22:18:41