我有一个这样的字符串:
S="str1|str2|str3"
我想从S中提取另一个只包含
的字符串t="str1|str2"
其中|
是分隔符
谢谢
答案 0 :(得分:2)
$string = "str1|str2|str3";
$pieces = explode( '|', $string); // Explode on '|'
array_pop( $pieces); // Pop off the last element
$t = implode( '|', $pieces); // Join the string back together with '|'
或者,使用字符串操作:
$string = "str1|str2|str3";
echo substr( $string, 0, strrpos( $string, '|'));
答案 1 :(得分:0)
implode("|", array_slice(explode("|", $s), 0, 2));
不是一个非常灵活的解决方案,但适用于您的测试用例。
或者,您可以使用explode()
的第三个参数limit
,如下所示:
implode("|", explode("|", $s, -1));
答案 2 :(得分:0)
$s = 'str1|str2|str3';
$t = implode('|', explode('|', $s, -1));
echo $t; // outputs 'str1|str2'
答案 3 :(得分:0)
我会看看strpos function和substr function。
这就是我要这样做的方式。
答案 4 :(得分:0)
那么,获取没有最后一个元素的相同字符串?
这有效:
print_r(implode('|', explode('|', 'str1|str2|str3', -1)));
使用具有负限制的爆炸,这样它将返回没有最后一个元素的所有字符串,然后再次对元素进行内爆。
答案 5 :(得分:0)
此示例应为您设置正确的路径
$str = "str1|str2|str3";
$pcs = explode("|", $str);
echo implode( array_slice($pcs, 0, 2), "|" );