2012-07-09 48 views
-5

假設我有一個字符串。找到字符串中的確切單詞位置

$string = red,green,blue,yellow,black; 

現在我有一個變量,這是我正在尋找的單詞的位置。

$key = 2; 

我想用2的位置。在這種情況下的話,答案會是blue

+0

-1爲零研究 – Ing 2012-07-09 16:03:38

回答

1

一種更好的方式來解決這個問題,將通過使用爆炸串變換爲陣列()。

$string = ...; 
$string_arr = explode(",", $string); 
//Then to find the string in 2nd position 

echo $string_arr[1]; //This is given by n-1 when n is the position you want. 
0

考慮:

$string = 'red,green,blue,yellow,black'; 
$key = 2; 

然後(< PHP 5.4):

$string_array = explode(',', $string); 
$word = $string_array[$key]; 

然後(> = PHP 5.4):

$word = explode(',', $string)[$key]; 
+1

注意:數組解引用(即'explode(...)[$ key]')只能在PHP 5.4或更高版本中使用。在5.4之前,它需要在兩行(即'$ words = explode(...); $ word = $ words [$ key];' – Wiseguy 2012-07-09 16:07:19

+0

@Wiseguy這就是爲什麼我改變它了。 c#land太長了 – iambriansreed 2012-07-09 16:08:12

+1

不錯,你在改變它,因爲我正在寫這個評論,它自5.4.0開始工作,所以你的代碼沒有錯,但是很多(大多數?)人仍然在使用舊版本。 – Wiseguy 2012-07-09 16:10:02

0

如果你知道你的單詞將用逗號分隔,你可以做些什麼柯:

$key = 2; 
$string = "red,green,blue,yellow,black"; 
$arr = explode(",",$string); 
echo $arr[$key]; 
1
<?php 
$string = preg_split('/[\s,]+/', $str); 

echo $string[$key]; 

這是通過拆分句子轉化成基於單詞邊界(空格,逗號,句號等)的話。它比explode()更靈活,除非您只使用逗號分隔的字符串。例如,str ='你好,我的名字是狗。你好嗎?',並且$key = 5,你會得到'如何'。

相關問題