3

下面的代码将拆分一个句子并告诉我单词 orange 的第一次出现。你能告诉我是否可以使用 php 库函数找到第二次出现的单词 orange。我可以通过使用for loop,只是想知道array_search库函数是否可以做到这一点来做到这一点?

$sentence = "apple orange grapes mango orange banana orange";
$wordarray = preg_split("/[\s,]+/", $sentence); //split by space and comma
$img_pos = array_search('orange', $wordarray);//To get the position of orange
4

3 回答 3

5

array_keys()接受一个搜索参数,因此只需获取所需值的键并检查第二个([1]):

$img_pos = array_keys($wordarray, 'orange');
print_r($img_pos);
echo $img_pos[1];
于 2013-10-30T19:22:51.500 回答
1

我会使用类似于此的某种 for 循环:

$instance = 1;
for($start=1; $start=2;$start++)
{
    if($instance == 2)
    {
        // second instance
    }
    else
    {
        // not second (first or 3+)
    }
}

希望这能让您走上正确的道路。

于 2013-10-30T19:22:14.533 回答
1

array_search() 文档

“如果在 haystack 中多次找到 needle,则返回第一个匹配键。要返回所有匹配值的键,请使用带有可选 search_value 参数的 array_keys()。”

所以,这应该工作:

$keys = array_keys($wordarray, "orange");
$img_pos = $keys[1];
print $img_pos;
于 2013-10-30T19:23:13.877 回答