2010-12-08 153 views
1

您好我寫一個函數在數組中找到,但在循環找到匹配它不是重新調整的真正價值檢查到底有什麼想法foreach循環歸還問題

function findinArray($find,$array){ 
    foreach($find as $key => $value){ 
     if (in_array($find,$array)) { 
      return true; 
     }else{ 
      return false; 
    }  } 
} 
if(findinArray(array("a","b"),array("a")){ 
     echo "Match"; 
} 

感謝

+1

應該怎樣做功能?什麼是*發現*條件? – 2010-12-08 08:52:01

回答

7

函數只能返回一次,所以你的函數將總是在第一次迭代返回。如果您希望它在第一次匹配時返回true,並且如果未找到匹配,則返回false,請嘗試下面的版本。

function findinArray($find, $array) { 
    foreach ($find as $value) { 
     if (in_array($value, $array)) { 
      return true; 
     } 
    } 
    return false; 
} 

if (findinArray(array("a","b"), array("a")) { 
    echo "Match"; 
} 

(您也取得了你如何在foreach使用的值錯誤,你已經忘記了}

+0

這就是我需要的感謝你是的有錯誤,但是在張貼在這裏我累積了這個想法 – r1400304 2010-12-08 09:00:46

4

它應該它不工作是in_array($value, $array)。但你可以做count(array_intersect())

0

你逝去的第一個參數在in_array()數組應該是價值 其更改爲

function findinArray($find,$array){ 
    foreach($find as $key => $value){ 
     if (in_array($value,$array)) { 
      return true; 
     } 
     return false; 
    }  
}