Следующий код разделит предложение и скажет мне первое появление слова 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
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;