私は次の配列を持っています
$arr = array(1 => 1, "1" => 50);
その上で count() を実行すると、奇妙な答えが返されます: 1
echo count($arr);
一方、配列$arr
には 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
どちらが正しい 。
「1」を「2」に変更すると、2 とカウントされます。問題は、配列の最初の要素を 1 に選択してから 50 に選択するという事実です。したがって、最終的に、配列は1 つの要素、つまり 50 です。
ここでそれを見てください!