array_pop for PHP中的字符串?

时间:2014-07-11 10:12:03

标签: php string

从字符串中弹出字符串的最后x个字节并返回它。除了像这样的自定义函数之外,用PHP做任何经典的方法吗?

function string_pop(&$str, $num) {
    $pop = substr($str, - $num);
    $str = substr($str, 0, strlen($str) - $num);
    return $pop;
}

2 个答案:

答案 0 :(得分:1)

也许像

list($str, $pop) = str_split($str, strlen($str) - $num);

编辑:正如Gergo Erdosi所指出的,只有当$num小于$str长度的一半时,此代码才有效。以下情况将起作用。

$arr = str_split($str, strlen($str) - $num);

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

但是,这是否比你原来的功能更优雅是值得商榷的。

答案 1 :(得分:0)

不确定它是最有效的,但这是一个单线:

list($str, $pop) = preg_split('/(?<=.{'.(strlen($str) - $num).'})/', $str, 2);