使用PHP计算数组的总数

时间:2014-09-08 06:34:29

标签: php arrays pdo

这不是一个合适的论坛,因为我不是程序员而且犯了简单的错误,但我找不到这笔钱的答案。 我有一个名为on0的表列,其中包含选项1,选项2,选项3或选项4 它们中的每一个都具有2,5,10或20的值。 我试图选择所有行并将值更改为数字,然后使用array_sum总计列值。 我已经写过几种方式,下面是一个例子,但我尝试总计的每一种方式都是数组中的最后一个值或零。我真的很感激我对错误的看法:

<?php
require_once('includes/connection.inc.php');
$conn = dbConnect('read', 'pdo');
$sql = 'SELECT on0 FROM members ORDER BY on0 ASC';
$result = array();
  foreach ($conn->query($sql) as $row) {
    if ($row['on0']=="Option 1") {$result[] = 2;}
    elseif ($row['on0']=="Option 2") {$result[] = 5;}
    elseif ($row['on0']=="Option 3") {$result[] = 10;}
    elseif ($row['on0']=="Option 4") {$result[] = 20;}
  }
  $tote = array($result);
echo "Value: $" . array_sum($tote) . ".00" . "\n"; 
?>

这段代码在PHP中产生0.00美元 如果我删除[]所以它是{$ result = 2;}等等,结果是最后一个值,即:$ 20.00 我还尝试将结果放在引号中作为{$ result [] =&#39; 2&#39 ;;}和&#34; 2&#34;

2 个答案:

答案 0 :(得分:0)

我认为你不需要阵列 主要问题是+=而不是=

<?php
require_once('includes/connection.inc.php');
$conn = dbConnect('read', 'pdo');
$sql = 'SELECT on0 FROM members ORDER BY on0 ASC';
$result = 0;
  foreach ($conn->query($sql) as $row) {
    if ($row['on0']=="Option 1") {$result += 2;}
    elseif ($row['on0']=="Option 2") {$result += 5;}
    elseif ($row['on0']=="Option 3") {$result += 10;}
    elseif ($row['on0']=="Option 4") {$result += 20;}
  }
echo "Value: $" . $result . ".00" . "\n"; 
?>

答案 1 :(得分:0)

您不需要将$result包装在另一个数组中。它已经是一个阵列了。所以你可以这样做:

echo "Value: $" . array_sum($result) . ".00" . "\n";