2017-01-13 7 views
0

私は、データベースから次のようなJSONデータを取得:json文字列の値をどのように集計できますか?

[{"type":"Sig","value":"0.0"},{"type":"SH","value":"9.95"},{"type":"COD","value":"6.95"}][{"type":"Sig","value":"0.0"},{"type":"SH","value":"9.95"},{"type":"COD","value":"6.95"}][{"type":"Sig","value":"0.0"},{"type":"SH","value":"9.95"},{"type":"COD","value":"6.95"}][{"type":"Sig","value":"0.0"},{"type":"SH","value":"9.95"},{"type":"COD","value":"6.95"}] 

私は、一緒にすべてのvalue値を追加しようとしている:9.95 + 6.95 ...私は、結果として67.6を得るようにします。

私は以下のコードを試しましたが、繰り返し値として16.9を取得しています。

for ($i = 0; $i <= $count - 1 ; $i++) { 

    $charge = $service[$i]['charge']; 
    $serviceValue = json_decode($charge, true); 
    $totalservice = 0; 

    foreach ($serviceValue as $key => $value)  {    
     $totalservice += $value['service_value']; 
    } 
    echo $totalservice;     
} 
+3

設定 '$のtotalservice = 0のため

$totalservice = 0; for ($i = 0; $i <= $count-1 ; $i++) { $charge = $service[$i]['charge']; $serviceValue = json_decode($charge, true); foreach ($serviceValue as $key => $value) { $totalservice+= $value['service_value']; } echo $totalservice; } 

おかげ;' '外for'ループ。 –

+0

ありがとう@u_mulder今それは正常に動作します。どうもありがとう。 – Haripriya

答えて

1

あなたは以下のようにそれを行うことができます: -

$jsonObj = json_decode($json); // Decode the JSON to OBJ 

// Now loop and find the SUM 
$total = 0; 
foreach ($jsonObj as $item){ 
    $total =+ $item->value; 
} 

// Print the SUM 
echo "Sum : $total"; 

注: - あなたのコードでは$totalservice0ループが次の反復に行くとあなたが同じ値を繰り返す時間を得ている理由です毎回beome 。だから、(@u_mulderが言った)のように実行します -

$totalservice = 0; 
for ($i = 0; $i <= $count-1 ; $i++) { 
.....//rest code 
} 
+0

あなたのお返事ありがとうございます。 $ totalservice = 0をループの外側に保つことで解決策を得ました。 – Haripriya

1

私は、以下の変更を行いました。それはうまく動作します。ヘルプ

関連する問題