Josemi, me has aclarado bastante las cosas, voy a seguir lo que dices pero si te no te parece mal, llendo pasito a pasito.
Veamos, no comprendo porqué se usa $carrito[$i][0] o $carrito[$i][1] para identificar a uno u otro, aunque investigaré al respecto.
El formulario con el que envío los arrays son los siguientes:
Código PHP:
// función que determina si un determinado valor coincide con
// un elemento que pertenece al array que se pasa como parámetro
function esta_en_array($objetos, $elemento)
{
$i = 0;
$encontrado = false;
while (($i < count($objetos)) && !$encontrado)
{
$encontrado = ($objetos[$i] == $elemento);
$i++;
}
return $encontrado;
}
//formulario
echo "<form METHOD='Post' ACTION='productos.php'>";
//Mostramos las medidas correspondientes a cada referencia.
$medidas = mysql_query ("SELECT *
FROM MEDIDAS
WHERE ID_REFERENCIA='$fila[0]'", $conexion) or die (mysql_error());
$i=0;
while ($fila_medida = mysql_fetch_row($medidas)) {
$i++;
echo "<INPUT TYPE='Checkbox' NAME=tabla[] VALUE='$fila_medida[0]'";
if (esta_en_array($carrito[$i][0], $fila_medida[0])) {
echo "CHECKED"; }
echo "<INPUT TYPE='text' NAME=colores[]";
if (esta_en_array($carrito[$i][1], $fila_medida[0])) {
echo "value='$carrito[$i][1]'"; }
echo ">";
}
Y esto es todo lo que hay, no puedo entender qué es lo que no marcha...
Disculpen mi ignorancia.
PD: En la función "incluir_en_carrito(...)" puse como me indicaste.