おそらく 32 ビットの Windows オペレーティング システム (Windows XP など) で 32 ビットの PHP バージョンを使用しています。
数値配列インデックスの場合、PHP は整数変数型を使用してキーを格納します。それらは限られています。この制限は、PHP のバージョンとオペレーティング システムに応じて、最大値またはターンアラウンドのいずれかをトリガーする制限よりも大きい値を選択した場合に表示されます。
値190337172011
がシステムの整数型には大きすぎます。そのため、ラウンドトリップで上限を取得し、結果は1358610987
. ラウンドトリップとは、可能な最大の正の数の後に、次の数が可能な限り最小の数であることを意味します。これは、表現できる「最大の」負の数です。そのため、負の数も取得します。
値を文字列キーとして保存することで回避できます。これには事前に修正が必要です。
$test = array('ID' . 190337172011 => 'Apple');
print_r($test);
これは通常、コードの移植性を高めるのに十分です。好きなように任意の文字列プレフィックスを選択できますが、ID
これは単なる例ですが、少なくとも 1 つの数字以外の文字が必要です。