Just for fun,
What would you expect the following to be?
$myarray = array(08 => 'green', 09 => 'brown', 010=>'black');
Give it a var_dump...
010 is the octal notation for decimal 8, whereas 08 and 09 are invalid octal notations and so are interpreted as 0, thus the result you are seeing.
Yups.