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