[英]Sum of value with the same key in arrays
$query = "SELECT * FROM gbex_importacao_adicao WHERE di_id ='1817102984'";
ob_start();
if( $result = odbc_exec ($conn, $query) ) {
}
while( $row = odbc_fetch_array($result) ) {
$adicao[]= "'".$row ['adicao']."'";
$ValorTotal[]= $row ['ValorTotal'];
}
foreach($adicao as $key => $value) {
$adicoes = $adicao [$key];
$VlrTotal = $ValorTotal[$key];
echo "Key:" . $adicao[$key] . " - " . "VlrTotal: " . $ValorTotal[$key] . "<br>";
}
結果:
我們需要幫助在這個 foreach 中按鍵對數組求和……就像這樣:
密鑰:'1' - VlrTotal:4.167,850000
密鑰:'2' - VlrTotal:656,6500000
密鑰:'3' - VlrTotal:582.0000000
謝謝你
您可以在 while 循環中添加具有相同鍵的值。
循環遍歷結果時,將值添加到帶有鍵的結果數組中。
while( $row = odbc_fetch_array($result) ) {
//add the value to the result array's value at index adicao
$result[$row['adicao']] += $row ['ValorTotal'];
/*
// the above will cause a warning when setting the first value
// for $row['adicao'], you can check if it's set first
if (isset ($result[$row['adicao']]){
$result[$row['adicao']] += $row ['ValorTotal'];
} else{
$result[$row['adicao']] = $row ['ValorTotal']
};
}
*/
foreach($result as $key => $value){
echo "Key $key - value: $value<br>";
}
一個更好的主意可能是讓 SQL 為您完成工作並簡單地循環結果。
$query = "SELECT SUM(`ValorTotal`) as sum,`adicao` FROM gbex_importacao_adicao
WHERE di_id ='1817102984'
GROUP BY `adicao` "
if( $result = odbc_exec ($conn, $query) ) {
while( $row = odbc_fetch_array($result) ) {
echo "Key: {$row['adicao']} - ValrTotal: {$row['sum']} <br>";
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.