为什么这个功能不起作用?

bra*_*adg 1 php

我有以下函数,我知道应该返回TRUE但它不会.

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

此函数在if语句的类中使用 if($this->myFunc($something, $array)){

无论我做什么,即使我在返回TRUE之上回复一些文本,它也不会返回true; 并显示.对于我所缺少的东西的任何帮助,这将是伟大的.

很抱歉没有发布代码.
我的数组打印以下内容

Array
(
[0] => -1
[1] => Platinum
[2] => 169
)
Run Code Online (Sandbox Code Playgroud)

$something = '-1';
Run Code Online (Sandbox Code Playgroud)

如果-1存在,我试图返回true.我不认为的问题是该值是否在数组中.我遇到的问题是为什么它不会返回为真,它会回显一个值,但它不会返回任何内容.我尝试使用in_array,但函数仍未返回true,这就是我尝试此方法的原因.这可能是我的PHP版本的问题吗?我使用了strtolower,因为这个函数将在整个页面中重用,以搜索其他值.

谢谢

mar*_*rio 6

我不认为你的功能没有任何问题,但作为替代方案,你可以尝试:

return in_array(strtolower($str), array_map("strtolower", $array));
Run Code Online (Sandbox Code Playgroud)