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

文字列が含まれているかどうかを判断するには、strpos()のretvalをFALSEに対してテストする必要があります。

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

この関数はブール値のFALSEを返す場合がありますが、0や""などのFALSEと評価される非ブール値を返す場合もあります。詳細については、ブール値のセクションをお読みください。この関数の戻り値をテストするには、===演算子を使用します。

おそらくstrcmpを使用する方が良いでしょう-一致を確実にするために、部分文字列を見つけようとはしていません。

于 2012-01-05T18:07:15.067 に答える