比较2个字符串,减去相同的字符并返回新值

时间:2017-07-07 20:05:08

标签: php string unique

我有两个字符串,它可能超过两个可能是5或6

 $a =  2012-05-18 usr abc removed device id=858 sn=abc cmmac=000 drumac=123
 $b =  2012-05-18 usr abc removed device id=858 sn=abc cmmac=000 drumac=12352015-03-26 usr mabdel001c removed device id=814 sn=abcd cmmac=1234 drumac=000

我需要帮助我需要一个函数或任何方式,当我将$ a与$ b进行比较时,它应该只返回我下面的字符串

$remaining = '2015-03-26 usr mabdel001c removed device id=814 sn=abcd cmmac=1234 drumac=000';

我尝试了这个没有运气的功能if (strcmp($var1, $var2) === 0) {

4 个答案:

答案 0 :(得分:5)

你的想法似乎并不明显,但braintree-web应该适用于此。

str_replace

如果在$remaining = str_replace($a, '', $b); 中找到$a,则$b$remaining的{​​{1}}字符移除$b,否则$a$remaining$b的未更改值。

答案 1 :(得分:4)

您可以使用str_replace并替换为nothing:

subset_df<-df[df$col1>5 & df$col2>5 & df$col3>5,]

https://3v4l.org/KiZLN

答案 2 :(得分:1)

只需获取第一个字符串的长度,确保它匹配并将另一个字符串串起来。

$a =  '2012-05-18 usr ctaylo01c removed device id=858 sn=BELAH4249 cmmac=0005CA91BE7C drumac=000D67150F35';
$b =  '2012-05-18 usr ctaylo01c removed device id=858 sn=BELAH4249 cmmac=0005CA91BE7C drumac=000D67150F352015-03-26 usr mabdel001c removed device id=814 sn=BELAH4126 cmmac=0005CA91C7B0 drumac=000D67151359';

If(substr($b, 0, strlen($a)) == $a) echo substr($b, strlen($a));

输出:

2015-03-26 usr mabdel001c removed device id=814 sn=BELAH4126 cmmac=0005CA91C7B0 drumac=000D67151359

感谢@Andreas让我注意到遗失的内容。

答案 3 :(得分:1)

此处的另一种方法是跳过匹配的内容。

str_replace

会奏效。如果你有多个匹配,你需要一个不同的方法(因为这只是1次迭代)。 {{1}}可能是您最好的方法。

演示:https://eval.in/829490