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
(~14 anos atrás)
(~14 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; }