2010-12-09 54 views
1

我有以下函數,我知道應該返回TRUE但它不會。爲什麼這個功能不起作用?

function myFunc($str,$array) 
{ 
    foreach($array as $k=>$v) 
    { 
    if(strtolower($v) == strtolower($str)) 
    { 
     return TRUE; 
    } 
    } 
    return false; 
} 

該功能用於在類中的if語句if($this->myFunc($something, $array)){

不管我做什麼,它不會返回,即使我同意返回TRUE以上的一些文字,真實的;並顯示。任何幫助我失去的東西,這將是偉大的。

對不起,不發佈代碼。
我的陣列打印以下

Array 
(
[0] => -1 
[1] => Platinum 
[2] => 169 
) 

$something = '-1'; 

我想如果存在-1返回true。我不認爲的問題是如果該值在數組中。我有的問題是爲什麼它不會返回爲真,它會回顯一個值,但它不會返回任何內容。我嘗試使用in_array並且該函數仍然沒有返回爲真,這就是爲什麼我嘗試了這種方法。這可能是我的PHP版本的問題嗎? 我使用了strtolower,因爲這個函數將在整個頁面被重用來搜索其他值。

感謝

+1

請提供$內容STR和$陣列。 :) – Teekin 2010-12-09 21:04:02

+1

我同意堅持一個var_dump($ str); var_dump($ array)在函數的開頭。 – GWW 2010-12-09 21:04:56

+1

你有沒有在你的數組上使用print_r進行調試? – wajiw 2010-12-09 21:05:25

回答

6

我沒有看到沒有什麼不對您的功能,但作爲替代你可以嘗試:

return in_array(strtolower($str), array_map("strtolower", $array)); 
1

This function is used inside a class in an if statement if($this->myFunc($something, $array))
是否修改if語句下面的變化的答案?

if(myFunc($something, $array))

只是一個想法爲可能$this未在正確的時間進行評估。

0

您可以使用in_arraystrcmp來完成此操作。

返回值

返回< 0如果str1小於STR2;

0如果str1大於str2,和0,如果它們相等