2017-01-13 23 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;''外循環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"; 

注: - 在你的代碼$totalservice beome每次當循環進入後面的迭代時間0,這就是爲什麼你得到相同的值重複時間。所以做什麼(@u_mulder說): -

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

感謝您的回答@anant。通過在循環外部保持$ totalservice = 0來獲得解決方案。 – Haripriya

1

我做了以下更改。它工作正常。

$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;     
    } 

感謝您的幫助