PHP:从字符串末尾获取第n个字符

PHP:从字符串末尾获取第n个字符,php,string,Php,String,我相信一定有一种简单的方法可以从字符串的末尾获取第n个字符 例如: $NthChar = get_nth('Hello', 3); // will result in $NthChar='e' 就这么做吧 $rest = substr("abcdef", -3, 1); // returns 'd' 像这样: function get_nth($string, $index) { return substr($string, strlen($string) - $index -

我相信一定有一种简单的方法可以从字符串的末尾获取第n个字符

例如:

$NthChar = get_nth('Hello', 3); // will result in $NthChar='e'
就这么做吧

  $rest = substr("abcdef", -3, 1); // returns 'd'
像这样:

function get_nth($string, $index) {
    return substr($string, strlen($string) - $index - 1, 1);
}

因此:


这是一个很好的函数,你可以在你的例子中使用相同的函数。你真的认为它是你想要的第n个字符还是(n+1)第(直到你数到第0、第1个…方法)
$string='Hello';echo substr($string,-3)返回
llo
如果输入为Helloreturns
l
from
Hello
返回r from world我真的不知道。然而,我的+1是给你的。@RoyalBg很抱歉回复2yo的评论。在内部,PHP字符串是字节数组。因此,使用数组括号访问或修改字符串不是多字节安全的,只能使用单字节编码的字符串(如ISO-8859-1)进行访问或修改。正如在中提到的,除了不是多字节安全之外,创建字符串的反向副本只是从中获取一个字符也是不合理的。您应该使用strlen()-$offset并以这种方式访问正确的字节,并提到编码不兼容。
  $rest = substr("abcdef", -3, 1); // returns 'd'
function get_nth($string, $index) {
    return substr($string, strlen($string) - $index - 1, 1);
}
// Accessing single characters in a string
// can also be achieved using "square brackets"
$str = "isogram";
echo $str[-1]; // m
echo $str[-2]; // a
echo $str[-3]; // r