首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在PHP中拆分字符串并获取最后一部分

在PHP中拆分字符串并获取最后一部分
EN

Stack Overflow用户
提问于 2013-06-11 02:52:01
回答 14查看 135.9K关注 0票数 55

我需要在PHP中用"-“拆分一个字符串,然后得到最后一部分。

因此,从这里可以看出:

abc-123-xyz-789

我希望能得到

"789“

这是我想出来的代码:

代码语言:javascript
复制
substr(strrchr($urlId, '-'), 1)

它工作得很好,除了:

如果我的input-string不包含任何"-",我必须获取整个字符串,比如from:

123

我要回去了

123

而且它需要尽可能快。如有任何帮助,我们不胜感激!

EN

回答 14

Stack Overflow用户

回答已采纳

发布于 2013-06-11 02:56:29

split($pattern,$string)在给定模式或正则表达式中拆分字符串(从5.3.0开始就不推荐使用了)

preg_split($pattern,$string)在给定的正则表达式模式内拆分字符串

explode($pattern,$string)在给定模式内拆分字符串

end($arr)获取最后一个数组元素

所以:

end(split('-',$str))

end(preg_split('/-/',$str))

$strArray = explode('-',$str)

$lastElement = end($strArray)

将返回-分隔字符串的最后一个元素。

有一种核心的方法可以做到这一点:

代码语言:javascript
复制
$str = '1-2-3-4-5';
echo substr($str, strrpos($str, '-') + 1);
//      |            '--- get the last position of '-' and add 1(if don't substr will get '-' too)
//      '----- get the last piece of string after the last occurrence of '-'
票数 134
EN

Stack Overflow用户

发布于 2013-06-11 02:55:13

代码语言:javascript
复制
$string = 'abc-123-xyz-789';
$exploded = explode('-', $string);
echo end($exploded);

EDIT::终于解决了E_STRICT问题

票数 25
EN

Stack Overflow用户

发布于 2013-06-11 02:53:46

只需检查分隔符是否存在,拆分或不拆分:

代码语言:javascript
复制
if (strpos($potentiallyDelimitedString, '-') !== FALSE) {
  found delimiter, so split
}
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17030779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档