这是我要改变的变量:
$last = 'Some string 1 foobar'
和我的替换声明
$last = str_replace(['1', '2'], '', $last);
最后输出
Some string foobar
如何消除字符串'字符串'之间的空格。和' foobar',我最初的想法是在str_replace
语句中使用''
替换也会删除空格,但它不会。
澄清我想知道如何制作Some string foobar
而不是Some stringfoobar
。
答案 0 :(得分:1)
基于正则表达式的方法对于这样的东西更灵活:
<?php
$subject = 'Some string 1 foobar';
var_dump(preg_replace('/\d\s?/', '', $subject));
上述代码的输出为:string(18) "Some string foobar"
这是做什么的,它是如何工作的?它取代了模式,而不是固定的文字字符串。这里的模式是:任何数字(\d
)以及一个潜在的现有空白字符(\s?
)。
另一种不同的替代方法是:
<?php
$subject = 'Some string 1 foobar';
var_dump(preg_replace('/(\s\d)+\s/', ' ', $subject));
这一个替换任何序列,其中包含一个或多个前面带有空格((\s\d)+
)的数字,以及一个空格字符旁边的单个空格。
答案 1 :(得分:0)
如果您不想使用preg_replace
,那么您可以执行以下操作。
$result = 'Some string 1 foobar';
$result = str_replace(['1', '2'], '', $result);
$result = str_replace(' ', ' ', $result);
但是我不得不承认我更喜欢preg_replace解决方案。虽然不确定基准。