2014-01-24 147 views
5

我確定必須有一個簡單的方法才能從字符串末尾獲得第n個字符。PHP:從字符串末尾獲得第n個字符

例如:

$NthChar = get_nth('Hello', 3); // will result in $NthChar='e' 
+0

這裏是一個不錯的功能,你可以使用同樣的,你的情況http://www.junnfo.com/extract -nth-character-from-astring-php.html –

+0

你真的認爲它是你想要的第n個字符還是第(n + 1)個(直到你數0,第1 ....方法) –

回答

14

只是這樣做

$rest = substr("abcdef", -3, 1); // returns 'd' 
+0

從'你好'返回'l' –

+0

從世界返回r – Thanasis

0
<?php 
function get_nth($string, $offset) { 
    $string = strrev($string); //reverse the string 
    return $string[$offset]; 
} 

$string = 'Hello'; 
echo get_nth($string, 3); 

至於$字符串[3]會給你3號線的偏移,但你希望它向後,你需要串扭轉它。


編輯:

儘管其他的答案(礦後貼)使用子串,並且它可以是一個一個襯裏,它是幾乎不可讀有substr($string, -2, 1),那麼就反轉串和輸出所述偏移。

+0

嗯,也許誰downvoted會告訴我們爲什麼:) –

+0

我reall你沒有想法。然而,我的** + 1 **給你。 –

+1

@RoyalBg對於回覆2yo評論感到抱歉。 _內部,PHP字符串是字節數組。因此,使用數組括號訪問或修改字符串的方式是**不是多字節安全**,並且只能使用單字節編碼的字符串完成,例如ISO-8859-1._ 在[手冊]中提到(https://secure.php.net/manual/en/language.types.string.php) – bangbambang

0
substr($string, -3);//returns 3rd char from the end of the string 
+1

'$ string ='Hello'; echo substr($ string,-3);'returns'llo' –

+0

將給你輸入爲llo的輸出爲你好 –

4

像這樣:

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