2012-04-24 8 views
0

何かが配列内にあるかどうかを確認し、キーを取得するには、array_search()関数を使用します。PHP - array_search()は失敗しますが、オンにはできません!== false?

なぜ関数を真と等しい(=== true)と比較すると、偽を返し、偽と正確に等しくない(!== false)と比較すると、真を返します。

<?php 
    if(array_search($value, $array) === true) 
    { 
     // Fails 
    } 

    if(array_search($value, $array) !== false) 
    { 
     // Succeeds 
    } 
?> 

ありがとうございます。

+0

質問ありがとうございます。彼の答えを受け入れる... – Starx

答えて

8

array_searchは、一致が見つかったときに針を返します。一致が見つからない場合にのみfalseを返します。これは、あなたのケースでは、反対の作品だけが理由です。

ニードルが配列内に見つかった場合はキーを返し、それ以外の場合はFALSE を返します。

+0

ああ、それは今意味があります。ありがとうHasan。 – MisterBla

+0

使用 '@Hasanカーンあたりとしてin_array'代わり –

0

array_search()はtrueを返しません。

のみが返される場合は、何も見つからない場合、一致した要素のキーが返されます。 manual

array_searchによれば

- 、それが見つかった場合、所与の値の配列を検索し、成功した 場合に対応するキーを返す....

は、針のキーを返します配列内では、そうでない場合はFALSEを返します。

+0

、それはあなたがあればより良い理解するであろう、それは間違っていなかった、FALSE – danneth

+0

は、それはあなたが – allen213

+0

ザッツを返すことができます返しません私は 'boolean'を書いていました – allen213

0

呼び出しが成功すると、キーはtrueではないため、失敗します。それはそう=== falseを見つけイマイチ場合

偽が返されたマニュアルから

okです:それはそうでない場合はFALSE配列、中に発見された場合

は、針のキーを返します。

関連する問題