我需要在 PHP 中按照“ - ”拆分字符串并获取最后一部分。
因此从这个字符串:
abc-123-xyz-789
我期望得到:
"789"
这是我想出来的代码:
substr(strrchr($urlId, '-'), 1)
这个功能很好,但是:
如果我的输入字符串中不包含任何“-”,我必须获取整个字符串,例如从:
123
我需要得到:
123
而且需要尽可能快。
对我来说,最艰难的方式:
$last = explode('-',$urlId)[count(explode('-',$urlId))-1];
被接受的答案中存在一个错误,即如果未找到分隔符,则仍会吃掉输入字符串的第一个字符。
$str = '1-2-3-4-5';
echo substr($str, strrpos($str, '-') + 1);
产生预期的结果:5
$str = '1-2-3-4-5';
echo substr($str, strrpos($str, ';') + 1);
生成 -2-3-4-5
$str = '1-2-3-4-5';
if (($pos = strrpos($str, ';')) !== false)
echo substr($str, $pos + 1);
else
echo $str;
按照要求生成整个字符串。
$string = 'abc-123-xyz-789';
$output = array_pop(explode("-",$string));
echo $output;
演示: 点击这里
$str = "abc-123-xyz-789";
$arr = explode('-', $str);
$last = array_pop( $arr );
echo $last; //echoes 789
$str = "abc-123-xyz-789";
$last = array_pop( explode('-', $str) );
echo $last; //echoes 789
只需调用以下一行代码:
$expectedString = end(explode('-', $orignalString));
'-'
作为分隔符,而我使用了 '/'
。无论如何,我已经纠正了我的代码。请现在检查它。 - Md. Zahangir Alam
explode()
函数用于将一个字符串通过指定的分隔符进行分割成数组,返回包含分割后的子串的数组。end()
函数用于获取数组中的最后一个元素。 - Wrikkenend(split('-',$str))
- Wesley Schleumer de Góes