这不是一个合适的论坛,因为我不是程序员而且犯了简单的错误,但我找不到这笔钱的答案。 我有一个名为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;
答案 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";