我想比較兩個字符串並刪除出現在第二個字符串中的任何字符。 例如: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