2013-08-26 140 views
1

由於我還是PHP新手,我正在尋找一種方法來了解如何從字符串中獲取特定字符。在字符串的特定位置查找字符

例子:

$word = "master"; 
$length = strlen($word); 
$random = rand(1,$length); 

所以我們說的$隨機值是3,那麼我想找出第三個是什麼樣的性格,所以在這種情況下,字符「s」。如果$ random是2,我想知道它是一個「a」。

我相信這確實很簡單,但我嘗試了一些substr想法將近一個小時,現在總是失敗。

您的幫助將不勝感激。

+2

「它總是失敗」 - 我們可以看到你的嘗試? – brbcoding

+1

有一點值得注意的是,字符串的索引是從零開始的,所以如果random是3,那麼你應該得到't' – StephenTG

+1

你可以把一個字符串看作是一個數組。 '$ word [0]'是** m **。 – MisterBla

回答

6

您可以使用substr()搶的一部分一個從一個點開始並走長度的字符串。這樣的例子是:

substr('abcde', 1, 1); //returns b 

你的情況:

$word = "master"; 
$length = strlen($word) - 1; 
$random = rand(0,$length); 
echo substr($word, $random, 1);//echos single char at random pos 

看到它在行動here

+0

正如所寫的,這將永遠不會碰到'm'並且可能會超出 – StephenTG

+1

的固定範圍。忘記我需要做的長度 - 1,以防止OOB – Mic1780

+0

非常感謝,這真的很好。我用substr玩了將近一個小時,主要問題是偏移,因爲我不知道我必須從0開始而不是從1開始。再次感謝! –

1

試試這個簡單的:

$word = "master"; 
$length = strlen($word); 
$random = rand(0,$length-1); 

if($word[$random] == 's'){ 
echo $word[$random]; 
} 

在這裏,我用0,因爲$word[0]m所以,我們需要減一strlen($word)用於獲取最後一個字符r

1

使用substr

$GetThis = substr($myStr, 5, 5); 

只要使用相同的值相同或不同的如果你想多個字符

$word = "master"; 
$length = strlen($word); 
$random = rand(0,$length-1); 
$GetThis = substr($word, $random, $random); 

正如我在註釋中提到(我忽視爲好),一定要啓動rand0包括您的字符串的開頭,因爲m是在地方0。 (?隨機)。如果大家都忽略了它不會是隨機的,現在將它:)

+1

正如所寫,這將永遠不會打'米',並可能出界 – StephenTG

+0

@StephenTG,謝謝。那是對的。我已經調整過了。 – sealz

+0

所以我給了upvote – StephenTG

4

您可以使用您的字符串同樣喜歡基於0的索引數組:

$some_string = "apple"; 
echo $some_string[2]; 

它會打印'p'。

,或者在你的情況:

$word = "master"; 
$length = strlen($word); 
$random = rand(0,$length-1); 

echo $word[$random]; 
0

您可以簡單地使用$myStr{$random}獲取字符串的第n個字符。

相關問題