3

次のコードは文を分割し、オレンジという単語の最初の出現を教えてくれます。PHP ライブラリ関数を使用して、オレンジという単語の 2 回目の出現を見つけることができるかどうか教えてください。ライブラリ関数がこれを行うことができる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()は検索パラメーターを受け取るので、必要な値のキーを取得して、2 番目の値 ( [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() ドキュメントから:

「needle が haystack で複数回見つかった場合、最初に一致したキーが返されます。一致するすべての値のキーを返すには、代わりにオプションの search_value パラメータを指定して array_keys() を使用してください。」

したがって、これは機能するはずです:

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