2016-10-20 8 views
-2

これは私がarray_search()で見つけた奇妙なことです。

$test = array(
    1 => 'first', 
    2 => 'second' 
); 

針が検索される場合には、例えば0として来る:

$val = 0; 
$key = array_search($val, $test); 

$key1(最初のキー)として返されます。

誰もこのような行動に対処する方法を知っていて、この確認のためにfalseを返しますか?それはどこに文書化されていますか?私は検索しましたが、SOでさえも見つかりませんでした。

ありがとうございます!

+1

それで 'array_search'にも' $ strict'パラメータがあります... – deceze

+0

どちらが正しいかは、ここによく書かれています。http://php.net/manual/de/function.array-search.php – Twinfriends

+1

重複:http: //stackoverflow.com/q/2739441/3933332(< - @decezeこれは "Odd array_search()ビヘイビアー"の質問の方が良いかもしれません) – Rizier123

答えて

2

これはバグではなく、PHPが比較をどのように処理するかを示します。 $valは整数なので、PHPは文字列を整数に変換して比較します。 'first'を整数に変換すると、0となり、比較は0 == 0になります。これは明らかです。そのため、最初の結果が返されます。

+0

何とか変換が私をクリックしていませんでした。ありがとう:-) – jitendrapurohit

関連する問題