Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.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_Sum - Fatal编程技术网

相同值的php数组和

相同值的php数组和,php,arrays,sum,Php,Arrays,Sum,我有这个阵列: Array ( [0] => Array ( [0] => Array ( [07] => Array ( [2] => 352.9 [3] => 375737 [4] => 1000000002 ) ) [1] => Array (

我有这个阵列:

Array ( [0] => 
       Array ( 
        [0] => Array ( 
          [07] => Array ( 
               [2] => 352.9
               [3] => 375737
               [4] => 1000000002
           ) ) 
        [1] => Array ( 
           [07] => Array ( 
               [2] => 362.1
               [3] => 375797
               [4] => 1000000002
        ) ) 
)
Array ( [1] => 
        [0] => Array ( 
           [08] => Array ( 
               [2] => 305.7
               [3] => 375857
               [4] => 1000000002
        ) )
    )
)
我需要密钥07(即月份)的最终数组和,如下所示:

Array ( [0] => 
     Array ( 
            [0] => Array ( 
              [07] => Array ( 
                   [2] => 3254.9 ( the sum of each 07 )
                   [3] => 6521545 ( the sum )
                   [4] => 98474916521621 ( the sum )
               ) ) 
)
Array ( [1] => 
            [0] => Array ( 
              [08] => Array ( 
                   [2] => 305.7 ( not summed cause month 08 is only one )
                   [3] => 375857 ""
                   [4] => 1000000002 ""
               ) ) 
    )
)

有什么帮助吗?

在这里,试试这个-我确信它既不是一个完美的解决方案,也不是一个最优的解决方案(3个foreach es),但它可以在相当大的数据集上工作

$inputArray是包含您提供的数据的多维数组,顺便说一句

编辑:固定版本:

$result = array();

foreach( $inputArray as $subArray ) {

    foreach ( $subArray as $subKey => $member ) {

        if ( empty( $result[$subKey]) ) {

            $result[$subKey] = $member;

        } else {
            foreach ( $member as $id => $subMember ) {

                if ( empty( $result[$subKey][$id]) ) {

                    $result[$subKey][$id] = $subMember;

                } else {

                    $result[$subKey][$id] += $subMember;

                }
            }
        }
    }
}
EDIT2:由于更改了数组的格式,因此解决方案不同:

注意:$array1和$array2是您的“全局”预定义阵列

$arrayWrapper = array_merge( ( array ) $array1, ( array ) $array2 );

$result = array();

foreach ( $arrayWrapper as $inputArray ) {

    foreach( $inputArray as $subArray ) {

        foreach ( $subArray as $subKey => $member ) {

            if ( empty( $result[$subKey]) ) {

                $result[$subKey] = $member;

            } else {
                foreach ( $member as $id => $subMember ) {

                    if ( empty( $result[$subKey][$id]) ) {

                        $result[$subKey][$id] = $subMember;

                    } else {

                        $result[$subKey][$id] += $subMember;

                    }
                }
            }
        }
    }
}
用你的数据测试过,应该可以


干杯。

在这里,试试这个-我确信它既不是一个完美的解决方案,也不是最优的解决方案(3个foreach es),但它在相当大的数据集上工作

$inputArray是包含您提供的数据的多维数组,顺便说一句

编辑:固定版本:

$result = array();

foreach( $inputArray as $subArray ) {

    foreach ( $subArray as $subKey => $member ) {

        if ( empty( $result[$subKey]) ) {

            $result[$subKey] = $member;

        } else {
            foreach ( $member as $id => $subMember ) {

                if ( empty( $result[$subKey][$id]) ) {

                    $result[$subKey][$id] = $subMember;

                } else {

                    $result[$subKey][$id] += $subMember;

                }
            }
        }
    }
}
EDIT2:由于更改了数组的格式,因此解决方案不同:

注意:$array1和$array2是您的“全局”预定义阵列

$arrayWrapper = array_merge( ( array ) $array1, ( array ) $array2 );

$result = array();

foreach ( $arrayWrapper as $inputArray ) {

    foreach( $inputArray as $subArray ) {

        foreach ( $subArray as $subKey => $member ) {

            if ( empty( $result[$subKey]) ) {

                $result[$subKey] = $member;

            } else {
                foreach ( $member as $id => $subMember ) {

                    if ( empty( $result[$subKey][$id]) ) {

                        $result[$subKey][$id] = $subMember;

                    } else {

                        $result[$subKey][$id] += $subMember;

                    }
                }
            }
        }
    }
}
用你的数据测试过,应该可以


干杯。

您能显示它不工作的代码吗?或者你想让我们从头开始写?你确定你的数字是正确的吗?07中的总和似乎有点武断,无法得出任何结论。我需要从头开始写!!你能显示它不工作的代码吗?或者你想让我们从头开始写?你确定你的数字是正确的吗?07中的总和似乎有点武断,无法得出任何结论。我需要从头开始写!!我已经试过了,但是没有用!如果我打印\r$result,我会看到相同的数组!谢谢!工作我已经编辑了我的问题,添加了2个全局数组!你能用这种方法修改代码吗?我不明白怎么做!!我已经试过了,但是没有用!如果我打印\r$result,我会看到相同的数组!谢谢!工作我已经编辑了我的问题,添加了2个全局数组!你能用这种方法修改代码吗?我不明白怎么做!!