Vamos por partes. Lo primero que haces es crear una variable llamada $tmp_carrito y le das por valor $_SESSION['carrito'], pero ahora que es lo que contiene $_SESSION['carrito'] ¿nada?. Seguimos añades la nueva compra colocandola en la variable $carrito y declarando esta como un arreglo. Luego tratas de agregar a lo que tenías la nueva compra. Pero me he dado cuenta de una cosa. He parseado el código con algunas modificaciones y me he dado cuenta que la variable $tmp_carrito está vacía es por eso que te devuelve 0. Fíjate en el código:
Código PHP:
<?
session_start();
$tmp_carrito = $_SESSION['carrito']; #Aquí la variable $tmp_carrito esta vacía. No se que tratas de hacer con esto
$referencia = 0;
$cantidad = 0;
for($i=0; $i<5; $i++){
$referencia += 05;
$cantidad += 1;
$carrito = array ($referencia => $cantidad);
$compra = array_merge($tmp_carrito,$carrito); # Cuando tratas de añadir la nueva compra como la variable $tmp_carrito
# es 0 entonces no es un arreglo por eso no adiciona nada porque $tmp_carrito
# no es un arreglo
}
foreach ($compra as $indice => $seleccion)
echo $indice."---".$seleccion."<br>";
$_SESSION['carrito']=$micarro;
?>
Si me dijeras el contenido de la variable $_SESSION['carrito'] a lo mejor te puedo ayudar. Porque no se que es lo que contenía antes de asignarla a $tmp_carrito
Salu2