no entiendo... dices asociados?
Código HTML:
<input type="text" name="foo[20]" value="bar"/>
<input type="text" name="foo[12]" value="baz"/>
<input type="text" name="foo[99]" value="buzz"/>
script.php Código PHP:
<?php
// ...
$carro = $_SESSION['basket'];
$carro = array_merge($carro, $_POST['foo']);
print_r($carro);
$_SESSION['basket'] = $carro;
// ----
/* EOF: ./script.php */
creo que al final lo que buscas es combinar los resultados, pero como has dicho son asociados.. de modo que no se deben agregar, sino sobre escribir/reemplazar si el caso se diera ¿estoy bien?
de este modo, se supone que debiera conservar bien las variable, supongo...
recuerda que ambos son arreglos.. de modo que un array_push agregaría un arreglo al arreglo, de modo que el valor del arreglo se mezcla mal...
espero te sirva, suerte!