获取字符串中最后一个逗号前的数字

时间:2017-05-13 18:48:41

标签: php

我有一个带有可变数字的数字的字符串,以逗号分隔:

[['pav', 26], ['sunny', 24]]

我可以使用此功能获取最后一个值:

$num = 15.514,6.23,9.15

如何获取最后一个逗号(6.23)之前的数字?这些数字的大小可能会有所不同,所以我必须确保无论数字有多少都能得到数字。

2 个答案:

答案 0 :(得分:0)

$split = explode(',', $num); // splits the string at each comma

// first option
$secondLast = $split[count($split) - 2];

// second option
end($split); // gets the pointer to the last array element
$secondLast = prev($split); // moves the pointer back one entry

速度差别不大,所以你可以使用你喜欢的那个。

答案 1 :(得分:0)

您可以使用正则表达式获得所需的结果,该正则表达式使用量词的自然贪婪来达到最后一个逗号:

$result = preg_replace('~.*(?<![^,])([^,]*),.*~', '$1', $str);

(简而言之:捕获字符串的最后一部分,该字符串前面没有逗号直到最后一个逗号的字符,并且全部删除)< / em>的

但由于分隔符是固定字符串,因此简单的explode应该足够,或者为什么不是为逗号分隔值设计的str_getcsv

$parts = str_getcsv($str);
array_pop($parts);
$result = end($parts);