PHP使用array_search查找数组中第二次出现的单词

时间:2013-10-30 19:18:14

标签: php

以下代码将拆分一个句子并告诉我第一次出现单词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

3 个答案:

答案 0 :(得分:4)

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

$img_pos = array_keys($wordarray, 'orange');
print_r($img_pos);
echo $img_pos[1];

答案 1 :(得分:1)

我会选择某种与此类似的for循环:

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

希望这能让你走上正轨。

答案 2 :(得分:1)

来自array_search() documentation

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

所以,这应该有效:

$keys = array_keys($wordarray, "orange");
$img_pos = $keys[1];
print $img_pos;