假设我有一个字符串。找到字符串中的确切单词位置
$string = red,green,blue,yellow,black;
现在我有一个变量,这是我正在寻找的单词的位置。
$key = 2;
我想用2的位置。在这种情况下的话,答案会是blue
。
假设我有一个字符串。找到字符串中的确切单词位置
$string = red,green,blue,yellow,black;
现在我有一个变量,这是我正在寻找的单词的位置。
$key = 2;
我想用2的位置。在这种情况下的话,答案会是blue
。
$a = explode(',', $string);
echo $a[ $key ];
一种更好的方式来解决这个问题,将通过使用爆炸串变换为阵列()。
$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.
考虑:
$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];
注意:数组解引用(即'explode(...)[$ key]')只能在PHP 5.4或更高版本中使用。在5.4之前,它需要在两行(即'$ words = explode(...); $ word = $ words [$ key];' – Wiseguy 2012-07-09 16:07:19
@Wiseguy这就是为什么我改变它了。 c#land太长了 – iambriansreed 2012-07-09 16:08:12
不错,你在改变它,因为我正在写这个评论,它自5.4.0开始工作,所以你的代码没有错,但是很多(大多数?)人仍然在使用旧版本。 – Wiseguy 2012-07-09 16:10:02
如果你知道你的单词将用逗号分隔,你可以做些什么柯:
$key = 2;
$string = "red,green,blue,yellow,black";
$arr = explode(",",$string);
echo $arr[$key];
<?php
$string = preg_split('/[\s,]+/', $str);
echo $string[$key];
这是通过拆分句子转化成基于单词边界(空格,逗号,句号等)的话。它比explode()
更灵活,除非您只使用逗号分隔的字符串。例如,str
='你好,我的名字是狗。你好吗?',并且$key
= 5,你会得到'如何'。
-1为零研究 – Ing 2012-07-09 16:03:38