来自这样的字符串:
$a = "Viale Giulio Cesare, 137, Roma, RM, Italia";
我需要获取字符串直到倒数第二个逗号:
$b = "Viale Giulio Cesare, 137, Roma";
如何删除找到倒数第二个逗号的所有内容?
答案 0 :(得分:3)
这应该适合你:
在这里,我首先使用strrpos()
获取字符串中的最后一个逗号。然后在这个子字符串中我也搜索最后一个逗号,这是倒数第二个逗号。使用倒数第二个逗号的这个位置,我只得到整个字符串的substr()
。
echo substr($a, 0, strrpos(substr($a, 0, strrpos($a, ",")), ","));
//^^^^^^ ^^^^^^^ ^^^^^^ ^^^^^^^
//| | | |1.Returns the position of the last comma from $a
//| | |2.Get the substr() from the start from $a until the last comma
//| |3.Returns the position of the last comma from the substring
//|4.Get the substr from the start from $a until the position of the second last comma
答案 1 :(得分:2)
您可以使用explode
将项目拆分为逗号,从而将项目转换为数组。然后你可以使用array_splice
和implode
数组将数组一起修改为一个字符串:
<?php
$a = "Viale Giulio Cesare, 137, Roma, RM, Italia";
$l = explode(',', $a);
array_splice($l, -2);
$b = implode(',', $l);
不是一行,而是一个非常直接的解决方案。
答案 2 :(得分:0)
在许多其他可能的解决方案中,您可以使用以下内容:
<?php
$re = "~(.*)(?:,.*?,.*)$~";
$str = "Viale Giulio Cesare, 137, Roma, RM, Italia";
preg_match($re, $str, $matches);
echo $matches[1]; // output: Viale Giulio Cesare, 137, Roma
?>