我试图用"和"替换文本中逗号的最后一次出现。使用tr
和strrchr()
。
示例:
str_replace()
但这取代了整个最后一个单词(在本例中为Microsoft),包括此字符串中的最后一个逗号。如何删除最后一个逗号并将其替换为"和" ?
我需要使用$likes = 'Apple, Samsung, Microsoft';
$likes = str_replace(strrchr($likes, ','), ' and ', $likes);
作为函数解决此问题。这就是为什么这个问题没有重复和更具体的原因。
答案 0 :(得分:4)
要仅替换最后一次出现,我认为更好的方法是:
$likes = 'Apple, Samsung, Microsoft';
$likes = substr_replace($likes, ' and', strrpos($likes, ','), 1);
strrpos找到最后一个逗号的位置,substr_replace将所需的字符串放在该位置替换' 1'在这种情况下的字符。
答案 1 :(得分:3)
您可以使用正则表达式查找字符串中的最后一个逗号。 Php preg_replace()
用正则表达式替换另一个字符串。
$likes = 'Apple, Samsung, Microsoft';
$likes = preg_replace("/,([^,]+)$/", " and $1", $likes)
检查demo
中的结果答案 2 :(得分:1)
首先,你必须将元素分成一个数组,除了最后一个,最后一个。然后你用逗号分别和"和"分别把它们放回去了
$likes = "A, B, C";
$likes_arr = explode(",", $likes);
$last = array_pop($likes_arr);
$likes = implode(",", $likes_arr) . " and" . $last;
echo $likes; //"A, B and C";
然而:不要忘记检查你是否确实有足够的元素。对于没有逗号的输入,这会失败。
答案 3 :(得分:1)