[英]how to calculate sum of total key in same array
我需要計算以下包含4個不同子數組的數組中的總鍵
Array
(
[0] => Array
(
[total] => 4.2
[sku] => 4321
)
[1] => Array
(
[total] => 2
[sku] => 2456
)
[2] => Array
(
[total] => 3
[sku] => 2245
)
[3] => Array
(
[total] => 1.5
[sku] => 2674
)
)
我是直接使用mysql計算出來的,但我更喜歡使用php
$sql = "SELECT SUM(CAST(IFNULL(total,0) AS DECIMAL(10,2))) FROM trans WHERE trans.userid = :userid";
因此total必須采用與查詢相同的格式
10.70
您可以遍歷數組,隨便添加,然后使用number_format()
進行格式化,或者使用array_column()
提取“總計”,然后使用array_sum()
進行添加,然后再次使用number_format()
或sprintf()
格式化它們。
echo number_format(array_sum(array_column($array, 'total')), 2);
我猜是這樣的:
$array = Array
(
[0] => Array
(
[total] => 4.2
[sku] => 4321
)
[1] => Array
(
[total] => 2
[sku] => 2456
)
[2] => Array
(
[total] => 3
[sku] => 2245
)
[3] => Array
(
[total] => 1.5
[sku] => 2674
)
);
$total = 0;
foreach ($array as $key => $value) {
$total += $value['total'];
}
print_r($total);
您可以迭代數組並匯總所有值,例如:
<?php
$array = array(
array(
'total' => 4.2,
'sku' => 4321
),
array(
'total' => 2,
'sku' => 2456
),
array(
'total' => 3,
'sku' => 2245
),
array(
'total' => 1.5,
'sku' => 2674
),
);
$result = array('total' => 0,'sku' => 0);
foreach($array as $key => $value) {
$result['total'] += $value['total'];
$result['sku'] += $value['sku'];
}
var_dump($result);
結果:array(2){[“” total“] => float(10.7)[” sku“] => int(11696)}
對於單個總和輸出:
echo $result['total'];
您也可以像這樣https://eval.in/875555嘗試使用array_walk_recursive()
$input = [your_2d_array_goes_here];
$final = array();
array_walk_recursive($input, function($item, $key) use (&$final){
$final[$key] = isset($final[$key]) ? $item + $final[$key] : $item;
});
print '<pre>';
print_r($final);
print '</pre>';
print $final['total'];
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.