Algunhas das cousas a ter en conta ao traballar cos arrays son:
Se nun array definimos dous elementos co mesmo indíce, so se garda no array o derradeiro
$c = array('0'=>1,1=>2,0=>5);
$c[]=10;
var_export($c); // Amosa array ( 0 => 5, 1 => 2, 2 => 10, )
Se se engade o array un elemento sen índice numérico definido, asignaralle de xeito automático un numérico que será o seguinte numero enteiro ao maior índice numérico existente no array. Se non hai ningún asignalle 0, e se o maior é negativo asignalle cero tamén.
$a = array(6=>1);
$a[]=10;
var_export($a); // Amosa array ( 6 => 1, 7 => 10, )
b = array(-6=>1);
$b[]=10;
var_export($b); // Amosa array ( -6 => 1, 0 => 10, )
$c = array('a'=>1);
$c[]=10;
var_export($c); // Amosa array ( 'a' => 1, 0 => 10, )
Os índices expresados en octal (un cero a esquerda do número) ou en hexadecimal (0x a esquerda) nunha cadea manteñense como índices alfanuméricos (e non se converten a numéricos).
$a = array('0x10'=>1);
$a[]=10;
var_export($a); // Amosa array ( '0x10' => 1, 0 => 10, )
Os índices expresados en octal (un cero a esquerda do número) ou en hexadecimal (0x a esquerda) como números convértense a números enteiros.
$a = array(0x10=>1);
$a[]=10;
var_export($a); // Amosa array ( 16 => 1, 17 => 10, )