0

嗨,伙计们,这真是令人震惊的问题。

我有很多使用 strrpos 的经验,但这真的没有意义。首先是数组:

arrCopy => {                
  ["Codice"]=>                
  string(33) "Per sport d è numerico"                
  ["Maniche"]=>                
  string(15) " maniche corte "                
  ...               
  ["Taglia"]=>                
  string(8) "tg tg XL"                
}

我想在 Foreach 循环中隔离“Taglia”的行为,但我无法检测到它!

foreach ($arrCopy as $key=>$spec){
         echo gettype($key); // prints string
         $tg= strpos(strtolower($key) , 'taglia'); // gives me 
//always 0 also with "Taglia" key
            if (  $tg !== false || ....
                 // never goes there

我哪里错了?

4

1 回答 1

2

您应该针对 FALSE 测试 strpos() 的 retval,以确定是否包含该字符串。

http://php.net/manual/en/function.strpos.php

此函数可能返回布尔值 FALSE,但也可能返回计算结果为 FALSE 的非布尔值,例如 0 或“”。请阅读有关布尔值的部分以获取更多信息。使用 === 运算符测试此函数的返回值。

使用 strcmp 可能更好 - 你不是为了确保匹配而试图找到一个子字符串。

于 2012-01-05T18:07:15.067 回答