大家好,这真是令人惊叹的问题。
我对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
我哪里错了?
答案 0 :(得分:2)
你应该测试strpos()的retval与FALSE,以确定是否包含字符串。
来自http://php.net/manual/en/function.strpos.php:
此函数可能返回布尔值FALSE,但也可能返回一个非布尔值,其值为FALSE,例如0或“”。有关更多信息,请阅读有关布尔值的部分。使用===运算符测试此函数的返回值。
使用strcmp可能更好 - 你没有那么多尝试找到子串,以确保匹配。