Foros del Web » Programando para Internet » PHP »

Sumar array con foreach

Estas en el tema de Sumar array con foreach en el foro de PHP en Foros del Web. Hola amigos, tengo 3 arreglos, uno de usuarios, otro de items, y otro de valores. Asocié los tres arreglos por que quiero sumar los valores ...
  #1 (permalink)  
Antiguo 23/11/2014, 12:16
 
Fecha de Ingreso: septiembre-2013
Ubicación: Bogota
Mensajes: 139
Antigüedad: 11 años, 2 meses
Puntos: 0
Sumar array con foreach

Hola amigos, tengo 3 arreglos, uno de usuarios, otro de items, y otro de valores. Asocié los tres arreglos por que quiero sumar los valores de cada fila. Me explico:

Item usuario1|usario2|suma
item1 | 4 | 3 | 7
item1 | 2 | 3 | 5
item3 | 8 | 3 | 11

Traté de hacerlo con un foreach pero me suma los valores anteriores mas los nuevos de cada fila por ejemplo

Código PHP:
Ver original
  1. foreach ($vlr_items as $va=>$valores_vect) {
  2.                      $suma=$suma+$valores_vect ;
  3.             }
  4.             echo "<td>$suma</td>";
Resultado:
Item usuario1|usario2|suma|
item1 | 4 | 3 | 7 | -------> 4+3=7
item1 | 2 | 3 | 12 | -------> 7+2+3=12
item3 | 8 | 3 | 23 | -------> 12+8+3=23

Intenté usar la funcion
Código PHP:
print_r(array_sum($valores_vect)); 
y me sale este error:

Warning: array_sum() [function.array-sum]: The argument should be an array

Código PHP:
(Los datos los traigo de mi base de datos

       
$result=mysql_query($sql,$link);
       
$p=false;
       
$comprobar="";
       
$experto=array();
       
$experto2=array();
       
$valores2=array();
       
$items=array();
       
$items2=array();
       
$valores=array();
       
$i=0;
       
$j=0;
       
$p=0;
            while(
$row=mysql_fetch_array($result))
            {
                
                if(!
array_key_exists($row[item],$items2)){
                    
//echo $row[item];
                    
$items2[$row[item]]=array();
                    
$items2[$row[item]][$row[cod_experto]]=    $row[cod_color];
                }
                else{
                    
//echo $row[cod_experto];
                    
$items2[$row[item]][$row[cod_experto]]=    $row[cod_color];
                    
print_r($items2);
                }
            
                if(
$comprobar==$row[item])
                    
$p=true;
                else {
                    
$comprobar=$row[item];
                    
$p=false;
                    
$i++;
                    }
           
               if(
$p==false){
                   
$items[$i]=$row[item];
                   }    
                   
$experto[$j]=$row[cod_experto];
                   
$valores[$j]=$row[cod_color];
                   
$j++;
         }
                 
        echo 
"<table border><tr><th>ITEM</th>";
        foreach (
$items2 as $e=>$ex) {
            foreach(
$ex as $llave=>$valor){
            echo 
"<th>$llave</th>";
            }
        }
        echo 
"<th>SUMA</th>";
        
        foreach (
$items2 as $it=>$vlr_items) {
            echo 
"<tr>";
            echo 
"<td>$it</td>";
            foreach (
$vlr_items as $va=>$valores_vect) {
                echo 
"<td>$valores_vect</td>";
            }
            foreach (
$vlr_items as $va=>$valores_vect) {
                     
$suma=$suma+$valores_vect ;
            }
            echo 
"<td>$suma</td>";
            
print_r(array_sum($valores_vect));
            echo 
"</tr>";
        }
        echo 
"</tr>";
        echo 
"</table>"
Alguien que por favor me colabore, me estoy volviendo loca con este tema. Gracias

Última edición por andre___5025; 23/11/2014 a las 12:18 Razón: Codigo
  #2 (permalink)  
Antiguo 23/11/2014, 18:15
 
Fecha de Ingreso: enero-2011
Mensajes: 94
Antigüedad: 13 años, 10 meses
Puntos: 7
Respuesta: Sumar array con foreach

Código PHP:
Ver original
  1. $items_1 = array(1, 1, 1);
  2. $items_2 = array(2, 10, 3);
  3. $items_3 = array(4, 5, 1);
  4.  
  5. echo "Items n1 total: ".array_sum($items_1)."<br>";
  6. echo "Items n2 total: ".array_sum($items_2)."<br>";
  7. echo "Items n3 total: ".array_sum($items_3)."<br>";

Etiquetas: foreach, sql, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:36.