A ver el motivo de añadir [ ] es que de no hacerlo te está machacando el id.
Así que o bien utilizas [ ] para que lo tome como arrays independientes o bien defines el array de otra forma.
Piensa que la funcion hace esto:
Código PHP:
Ver original$direcciones[id]=1;
$direcciones[id]=2;
$direcciones[id]=3;
echo $direcciones[id]; // el valor es 3