-2

私は次の配列を持っています

$arr = array(1 => 1, "1" => 50);

その上で count() を実行すると、奇妙な答えが返されます: 1

echo count($arr);

一方、配列$arrには 2 つの要素があります。

なんで?

4

3 に答える 3

2

これは Type Casting によるものです。Example #2 Type Casting and Overwriting example in Arraysを確認してください。

配列宣言の複数の要素が同じキーを使用する場合、他のすべてが上書きされるため、最後の要素のみが使用されます。

$arr = array(1 => 10, "1" => 20);
var_dump( $arr );

ディスプレイ:

array (size=1)
  1 => int 20

など :

echo count( $arr );

ディスプレイ:

1

どちらが正しい 。

于 2013-10-09T11:38:00.817 に答える
0

「1」を「2」に変更すると、2 とカウントされます。問題は、配列の最初の要素を 1 に選択してから 50 に選択するという事実です。したがって、最終的に、配列は1 つの要素、つまり 50 です。

ここでそれを見てください!

于 2013-10-09T11:39:21.817 に答える