2012-01-05 2 views
0

こんにちは、これは本当に素晴らしい質問です。php strrposが文字列を検出しない、常に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 

どこが間違っていますか?

答えて

2

文字列が含まれているかどうかを判断するには、strpos()のretvalをFALSEからテストする必要があります。 http://php.net/manual/en/function.strpos.phpから

この関数はブール値FALSEを返すことができるだけでなく、FALSEに評価される非ブール値を返すことがあり、例えば0又は「an」。詳細についてはブーリアンに関するセクションをお読みください。この関数の戻り値をテストするには、===演算子を使用します。おそらく

のstrcmpを使用することをお勧め - あなたはそんなに試合を確保するためとして、部分文字列を検索しようとしていません。

+0

あなたは($ tgの場合、私は を書いている確認してください言ったように私は、演算子を使用!== falseを 問題は、とにかく、私は、気にして申し訳ありませんif文で間違っていた見つけました。 – giuseppe