首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在PHP中字符串的array_pop?

在PHP中字符串的array_pop?
EN

Stack Overflow用户
提问于 2014-07-11 18:12:03
回答 2查看 737关注 0票数 0

从字符串中弹出字符串的最后x个字节并返回它。除了像这样的自定义函数之外,在PHP中还有什么经典的方法可以做到这一点吗?

代码语言:javascript
复制
function string_pop(&$str, $num) {
    $pop = substr($str, - $num);
    $str = substr($str, 0, strlen($str) - $num);
    return $pop;
}
EN

回答 2

Stack Overflow用户

发布于 2014-07-11 18:19:30

也许是像这样的

代码语言:javascript
复制
list($str, $pop) = str_split($str, strlen($str) - $num);

编辑:正如Gergo Erdosi所指出的,只有当$num小于$str长度的一半时,此代码才能工作。如果不这样的话,下面的代码将会起作用。

代码语言:javascript
复制
$arr = str_split($str, strlen($str) - $num);

$pop = array_pop($arr);
$str = implode('', $arr);

但是这个函数是否比你原来的函数更优雅还有待商量。

票数 1
EN

Stack Overflow用户

发布于 2014-07-11 18:48:37

不确定它是最有效的,但这里有一行代码:

代码语言:javascript
复制
list($str, $pop) = preg_split('/(?<=.{'.(strlen($str) - $num).'})/', $str, 2);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24695322

复制
相关文章

相似问题

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