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 originalforeach ($vlr_items as $va=>$valores_vect) {
$suma=$suma+$valores_vect ;
}
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