让我说我有这个字符串
One.Two_Three_Four.Five.Six_Three_Eight ...
如何在最后一次之前和之后获得所有字符串"三_"
我正在考虑使用爆炸。
答案 0 :(得分:2)
您可以在explode()
设置一个限制,但由于您希望它不在最后,您可以执行strrev()
- 所以最后一个点成为第一个。
$string = strrev($string); //reversed
$data = explode(".", $string, 2);
$data = array_map("strrev", $data); //strings in correct order
但由于该字符串已被撤销,$data[0]
现在为"four"
而$data[1]
将为"one.two.three"
答案 1 :(得分:2)
如果您希望在最终.
之后显示文字,请使用以下内容:
$string = "One.Two.Three.Four";
$last = substr($string, strrpos($string, '.') + 1);
echo $last; // Four
修改强>
OP将问题改为完全不同的问题,但无论如何我都会留在这里。答案 2 :(得分:1)
您可以使用array_pop()
$string = "A.B.C.D.E";
$a = explode(".",$string);
array_pop($a);
答案 3 :(得分:1)
另一种解决方案可能是
$parts = explode(".", $string);
$last = array_pop($parts);
$other = implode(".", $parts)
答案 4 :(得分:0)
爆炸返回一个数组,因此您必须遍历它才能查看所有值。您可以直接或使用foreach(for)执行此操作。
$string = "One.Two.Three.Four";
$a = explode(".",$string);
echo $a[0]; // One
echo $a[1]; // Two
echo $a[2]; // Three
echo $a[3]; // Four
// Or
foreach ($a as $v){
echo $v; // One, Two, Three, Four
}
http://php.net/manual/pt_BR/control-structures.foreach.php
如果你只想要LAST元素,你可以这样做:
echo end($a); // Four
答案 5 :(得分:0)
尝试:
$string="one.two.three.four";
$array = explode(".",$string);
$last= end($array);
echo $last;
如果您想要始终拥有数组中的最后一个,这将成功。首先,您将字符串分解为数组,然后使用数组并使用end
。