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


PHP finding second occurrence of a word in array using array_search

下面的代码将拆分一个句子,并告诉我橙色这个词的第一次出现。你能告诉我是否有可能使用 php 库函数找到橙色这个词的第二次出现吗?我可以通过使用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

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

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

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

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

希望这能带您走上正确的轨道。

来自 array_search() 文档:

"如果大海捞针不止一次,就会返回第一个匹配的密钥。要返回所有匹配值的键,请改用 array_keys() 和可选的 search_value 参数。

所以,这应该有效:

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