Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何计算同一数组中总密钥的和_Php_Arrays_Foreach - Fatal编程技术网

Php 如何计算同一数组中总密钥的和

Php 如何计算同一数组中总密钥的和,php,arrays,foreach,Php,Arrays,Foreach,我需要计算包含4个不同子数组的以下数组中的总密钥 Array ( [0] => Array ( [total] => 4.2 [sku] => 4321 ) [1] => Array ( [total] => 2 [sku] => 2456 ) [2] => 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


您可以迭代数组并对所有值求和,如:


您可以迭代数组并对所有值求和,如:


我猜是这样的:-

  $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'];
?>