Ver Mensaje Individual
  #2 (permalink)  
Antiguo 29/05/2004, 11:58
Avatar de sism82
sism82
 
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 20 años, 6 meses
Puntos: 1
Tienes algunos errores, para empezar te hace falta cerrar la llave del primero foreach.. luego, después de que compruebas que el array 2 tiene ese mismo indice, deberías simplemente sumarlos, pero tu vuelves a recorrer el array 1, y sumas los indices iguales, por lo que si en la tabla 1 tienes 3 tomates, y le sumas otros 3 tomates de esa misma tabla, te da 6 a la primer salida, lo cual es incorrecto...

aqui te dejo el código corregido...

//definición de arreglos
$tabla = array ("Tomates" => "3", "Patatas" => "8", "Harina" => "100", "Truchas" => "13", "Agua" => "8");
$tabla2 = array ("Perjil" => "12","Tomates" => "4","Sardinas" => "45", "Truchas" => "14");

//suma de índices iguales para tabla 1
foreach($tabla as $k => $v)
if (array_key_exists($k, $tabla2))//si existe en la tabla dos lo sumamos
{
$valorTabla2 = $tabla2[$k];
$total = $valorTabla2 + $v;
echo '<br />Total Suma de '.$k.': '.$total.'<br />';
}
else //si no existe, entonces simplemente desplegamos
echo '<br />Total de '.$k.': '.$v.'<br />';

//despliege de indices no coincidentes en tabla 2
foreach($tabla2 as $k => $v)
if (!array_key_exists($k, $tabla))//si no existe en la tabla 1 lo mostramos
echo '<br />Total de '.$k.': '.$v.'<br />';

el código ya está probado... en este caso solo puse totales, tu puedes agregar el desglose...
un saludo