somar array (array_sum) não funciona
Boa tarde amigos do phpBrasil.
Tenho que somar uma variável.
Na verdade ela é a soma de cada ítem do meu carrinho de compras.
Ex:
2 * 10 = 20
3 * 10 = 30
Preciso do resultado 50, certo?
Então estou usando isso...
$calculamult = $valor * $qtde;
$calculamult = number_format( $calculamult, 2,",",".");
echo "<td><center>$calculamult</center></td>";
$somatudo = array($calculamult);
echo "soma(a) = ".array_sum($somatudo)."\n";
Porém ao invés de retornar a soma da variavel $calculamult me retorna os valores da seguinte forma:
soma(a) = 595 soma(a) = 129 soma(a) = 39
Alguém poderia me ajudar?
Desde já agradeço
Tenho que somar uma variável.
Na verdade ela é a soma de cada ítem do meu carrinho de compras.
Ex:
2 * 10 = 20
3 * 10 = 30
Preciso do resultado 50, certo?
Então estou usando isso...
$calculamult = $valor * $qtde;
$calculamult = number_format( $calculamult, 2,",",".");
echo "<td><center>$calculamult</center></td>";
$somatudo = array($calculamult);
echo "soma(a) = ".array_sum($somatudo)."\n";
Porém ao invés de retornar a soma da variavel $calculamult me retorna os valores da seguinte forma:
soma(a) = 595 soma(a) = 129 soma(a) = 39
Alguém poderia me ajudar?
Desde já agradeço
comentários (0)
suspender
Lista de Respostas:
24/02/2010 9:59pm
(~16 anos atrás)
(~16 anos atrás)
Dalton, você deve passar para a função array_sum um vetor de números (int ou float) preferencialmente. Se você passa um vetor com números na forma de string no formato brasileiro, o PHP não sabe que aquilo é um formato brasileiro e não sabe somar nesta notação nativamente.
Além disso, você passou um array com um único elemento. A soma dos valores de um vetor com um único elemento é o próprio valor do único elemento. Use number_format apenas pra apresentar o resultado calculado.
Porém, como você já está percorrendo o carrinho numa estrutura de repetição, você pode calcular a soma durante este loop:
Além disso, você passou um array com um único elemento. A soma dos valores de um vetor com um único elemento é o próprio valor do único elemento. Use number_format apenas pra apresentar o resultado calculado.
// Vetor de valores a serem pagos
$vetor_valores = array();
// Percorrer cada item do carrinho
foreach ($carrinho as $item) {
// Calcular o valor e jogar no vetor de valores
$vetor_valores[] = $item->valor * $item->quantidade;
}
// Calcular o total
$valor_final = array_sum($vetor_valores);
Porém, como você já está percorrendo o carrinho numa estrutura de repetição, você pode calcular a soma durante este loop:
// Vetor de valores a serem pagos
$vetor_valores = array();
// Valor da soma total
$valor_final = 0.0;
// Percorrer cada item do carrinho
foreach ($carrinho as $item) {
// Calcular o valor, jogar no vetor de valores e calcular soma
$valor = $item->valor * $item->quantidade;
$vetor_valores[] = $valor;
$valor_final += $valor;
}
