在最后发现的PHP上爆炸

时间:2014-06-17 16:45:47

标签: php explode

让我说我有这个字符串

One.Two_Three_Four.Five.Six_Three_Eight ...

如何在最后一次之前和之后获得所有字符串"三_"

我正在考虑使用爆炸。

6 个答案:

答案 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

http://www.php.net/end

答案 5 :(得分:0)

尝试:

$string="one.two.three.four";
$array = explode(".",$string);
$last= end($array);
echo $last;

如果您想要始终拥有数组中的最后一个,这将成功。首先,您将字符串分解为数组,然后使用数组并使用end