php - array_fill negative indices
php
Solution
Looking at the source for PHP, I can see exactly why they did this!
What they do is create the first entry in the array. In PHP, it looks like:
$a = array(-4 => 10);
Then, they add each new entry like this:
$count--;
while ($count--) {
$a[] = 10;
}
If you do this exact same thing yourself, you'll see the exact same behavior. A super short PHP script demonstrates this:
<?php
$a = array(-4 => "Apple");
$a[] = "Banana";
print_r($a);
?>
The result: `Array ( [-4] => Apple [0] => Banana )`
NOTE Yes, I did put in PHP instead of the C source they used, since a PHP programmer can understand that a lot better than the raw source. It's approximately the same effect, however, since they ARE using the PHP functions to generate the results...
Problem
When using `php` array_fill and negative indices, why does `php` only fill the first negative indice and then jump to 0. For example: `array_fill(-4,4,10)` should fill `-4, -3, -2, -1` and `0` but it does `-4, 0, 1, 2, 3` The manual does state this behaviour but not why. Can anyone say why this is?