You are using a 32 bit PHP version on probably a 32 bit windows operating system, for example Windows XP.
For numerical array indexes PHP uses the integer variable type to store the keys. Those are limited. This limitation becomes visible if you choose a value greater than the limit which will either trigger a max or a turn-around depending on the PHP version and the operating system.
The value 190337172011
is too large of the integer type on your system, that's why you get a cap through roundtrip with a result of 1358610987
. Roundtrip means, that after the possible maximum positive number, the next number is the lowest possible number, which is the "largest" negative number that can be expressed. That's why you get negative numbers as well.
You can work around that by storing the values as string keys which needs some pre-fixing:
$test = array('ID' . 190337172011 => 'Apple');
print_r($test);
This is normally enough to make your code more portable. You can choose any string prefix as you like, ID
is just exemplary, but you need at least one non-numeric character.