Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/04/2009, 05:24
Avatar de pzin
pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 9 meses
Puntos: 2114
Problema con foreach y array externo

Muy buenas,

estoy haciendo una pequeña aplicación para hacer pedidos desde PDAs, y me he topado con un problema que no entiendo en absoluto.

Hay un formulario donde los datos llegan de la siguiente manera:
1-05
1/2-802
2-8100

A ésta cadena (son varias líneas, pero solamente una cadena) la llamo $pedido.

El formato de cada línea es Cajas-Referencia. Cajas es el número de cajas (1/2 es media caja) y Referencia es el código del producto.

Bien. Ahora, tengo un array así:

Código php:
Ver original
  1. $producto["05"]="una referencia";
  2. $producto["802"]="una más";
  3. $producto["8100"]="otra referencia";

Está el código de referencia del producto con su nombre.

Luego tengo un foreach, que trabaja con un array creado a partir de $pedido.

Código php:
Ver original
  1. $pedido = explode("\n",$pedido);
  2.  
  3. foreach ($pedido as $var) {
  4.     $linea = explode("-",$var);
  5.     if($linea[0]=="1/2") $cantidad = "½";
  6.     elseif($linea[0]=="1/3") $cantidad = "⅓";
  7.     elseif($linea[0]=="2/3") $cantidad = "⅔";
  8.     else $cantidad = $linea[0];
  9.     echo $cantidad." ".$producto[$linea[1]]."<br />";
  10. }

Lo curioso es que la cantidad funciona perfectamente, pero no así el nombre del producto ($producto[$linea[1]]). Solamente la última posición del pedido si que saca el nombre. Muy raro. He probado hasta hacer al final del bucle un unset a $linea[1] y cosas así muy extrañas, pero nada...

En el ejemplo anterior, lo que imprimiría sería:

1
½
2 otra referencia

¿Ustedes ven algo raro? Porque yo llevo ya un buen rato y no hay manera...

Gracias y un saludo.