2012-07-09 73 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,你会得到'如何'。

相关问题