2014-09-08 3 views
0

저는 프로그래머가 아니기 때문에 적절한 포럼이 아니며 간단한 실수를 범합니다. 그러나이 합계에 대한 답을 찾을 수 없습니다. 옵션 1, 옵션 2, 옵션 3 또는 옵션 4를 포함하는 테이블 열이 각각의 값이 2, 5, 10 또는 20입니다. 모든 행을 선택하려고합니다. 값을 숫자로 변환 한 다음 array_sum을 사용하여 열 값을 합계하십시오. 여러 가지 방법으로 작성했으며 아래에 예가 나와 있지만 합계를 시도 할 때마다 배열의 마지막 값이나 0이 사용됩니다. 내가 잘못 뭐하는 거지 내가 정말에 같은 입력을 부탁드립니다 :PHP를 사용하여 배열에서 합계를 계산하십시오.

<?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"; 
?> 

이 코드는 $ 0.00 생산 PHP 내가이 (가) [] 그래서 {$ 결과 = 2;}를 제거하는 경우 등 결과입니다 마지막 값 즉 : $ 20.00 나는 또한 같은 인용 부호에 결과를 배치 시도 {$는 [] =의 '2'및 결과;}과 "2"난 당신이 배열을 필요가 있다고 생각하지 말아

답변

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

솔루션 마스크와 Barmar에 감사드립니다. 나는 내가했던 것을 지나치게 복잡하게 만들고 있다는 것을 깨닫지 못했다. – anachak

0

$result을 다른 배열로 랩핑 할 필요가 없습니다. 이미 배열입니다. 따라서 할 수있는 일은 다음과 같습니다.

echo "Value: $" . array_sum($result) . ".00" . "\n"; 
관련 문제