2013-10-30 47 views
1

以下代碼將分割一個句子並告訴我第一個出現的單詞orange。你能否告訴我是否可以使用php庫函數找到第二個出現的單詞orange。我可以通過使用for loop,只是想知道array_search庫函數可以做到這一點嗎?PHP使用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 

回答

3

array_keys()需要一個搜索參數,所以只拿到鑰匙你想要的值,並檢查第二個([1]):

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

我會去與某種類似這種循環:

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

希望這給你帶來了正確的軌道上。

1

array_search() documentation

「如果發現針在haystack中不止一次,返回第一個匹配鍵。要返回所有匹配值的鍵,請使用帶有可選search_value參數的array_keys()。

所以,這應該工作:

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

這不會是結束'()'這將是第三次。它實際上是'$ img_pos [1]' – AbraCadaver

+0

$ keys [1],但我明白你的觀點。 – Will

+0

是的,正在看我的:-) – AbraCadaver

相關問題