Php 如何计算同一数组中总密钥的和
我需要计算包含4个不同子数组的以下数组中的总密钥Php 如何计算同一数组中总密钥的和,php,arrays,foreach,Php,Arrays,Foreach,我需要计算包含4个不同子数组的以下数组中的总密钥 Array ( [0] => Array ( [total] => 4.2 [sku] => 4321 ) [1] => Array ( [total] => 2 [sku] => 2456 ) [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
)
)
我是直接用mysql计算的,但我更喜欢用php
$sql = "SELECT SUM(CAST(IFNULL(total,0) AS DECIMAL(10,2))) FROM trans WHERE trans.userid = :userid";
因此,total的格式必须与查询中的格式相同
10.70
您可以迭代数组并对所有值求和,如:
您可以迭代数组并对所有值求和,如:
我猜是这样的:-
$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);
我猜是这样的:-
$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);
您可以在数组上循环,边加边加,然后使用number\u format()
格式化,或者使用array\u column()
提取“总计”,使用array\u sum()
添加它们,然后再次使用number\u format()
或sprintf()
格式化它们
echo number_format(array_sum(array_column($array, 'total')), 2);
您可以在数组上循环,边加边加,然后使用number\u format()
格式化,或者使用array\u column()
提取“总计”,使用array\u sum()
添加它们,然后再次使用number\u format()
或sprintf()
格式化它们
echo number_format(array_sum(array_column($array, 'total')), 2);
您也可以像这样尝试使用array\u walk\u recursive()
$input=[你的二维数组在这里运行];
$final=array();
数组\遍历\递归($input,函数($item,$key)使用(&$final){
$final[$key]=isset($final[$key])?$item+$final[$key]:$item;
});
打印“”;
打印(最终版);
打印“”;
打印$final['total'];
?>
您也可以像这样尝试使用数组\u walk\u recursive()
$input=[你的二维数组在这里运行];
$final=array();
数组\遍历\递归($input,函数($item,$key)使用(&$final){
$final[$key]=isset($final[$key])?$item+$final[$key]:$item;
});
打印“”;
打印(最终版);
打印“”;
打印$final['total'];
?>