PHP находит второе вхождение слова в массиве с помощью array_search

Следующий код разделит предложение и скажет мне первое появление слова orange. Не могли бы вы рассказать мне, можно ли найти второе появление слова orange с помощью функции php library. Я мог бы сделать это, используя for loop, просто интересно for loop, может ли array_search библиотеки 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 

Related of "PHP находит второе вхождение слова в массиве с помощью array_search"

array_keys() принимает параметр поиска, так что просто получите ключи для array_keys() значения и проверьте на второй ( [1] ):

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

Я бы пошел с какой-то петлей, подобной этой:

 $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;