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

Php 如何通过比较同一数组的任意一个或两个值来合并和求和值

Php 如何通过比较同一数组的任意一个或两个值来合并和求和值,php,arrays,Php,Arrays,下面是php中的数组,如果(0)和(1)匹配,我需要函数通过求(2)和(3)值的和来解决预期结果中显示的n个数组: Array ( [0] => Array ( [0] => Array ( [0] => Week - 1 [1] => 2019-08-05 [2] =>

下面是php中的数组,如果(0)和(1)匹配,我需要函数通过求(2)和(3)值的和来解决预期结果中显示的n个数组:

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [0] => Week - 1
                    [1] => 2019-08-05
                    [2] => 1
                    [3] => 2
                )

            [1] => Array
                (
                    [0] => Week - 2
                    [1] => 2019-08-12
                    [2] => 3
                    [3] => 4
                )

            [2] => Array
                (
                    [0] => Week - 3
                    [1] => 2019-08-19
                    [2] => 5
                    [3] => 6
                )

        )

    [1] => Array
        (
            [0] => Array
                (
                    [0] => Week - 1
                    [1] => 2019-08-05
                    [2] => 7
                    [3] => 8
                )

            [1] => Array
                (
                    [0] => Week - 2
                    [1] => 2019-08-12
                    [2] => 9
                    [3] => 10
                )

            [2] => Array
                (
                    [0] => Week - 3
                    [1] => 2019-08-19
                    [2] => 11
                    [3] => 12
                )

            [3] => Array
                (
                    [0] => Week - 4
                    [1] => 2019-08-26
                    [2] => 13
                    [3] => 14
                )

        )

)
预期结果:

            [0] => Array
                (
                    [0] => Week - 1
                    [1] => 2019-08-05
                    [2] => 8
                    [3] => 10
                )

            [1] => Array
                (
                    [0] => Week - 2
                    [1] => 2019-08-12
                    [2] => 12
                    [3] => 14
                )

            [2] => Array
                (
                    [0] => Week - 3
                    [1] => 2019-08-19
                    [2] => 16
                    [3] => 18
                )

            [3] => Array
                (
                    [0] => Week - 4
                    [1] => 2019-08-26
                    [2] => 13
                    [3] => 14
                )
需要帮助以获取所引发查询的上述预期结果。我尝试了以下代码:

<?php
$sum = [];
foreach($weekly as $aSet) {
    foreach($aSet as $k => $kv) {
        $i = 0;
        foreach($kv as $v) {
            $sum[$k][$i] += $v;
            $i++;          
        }
    }
}
?>

我只想为2和第3个值获取总和,并且需要为0和第1个值保持常量,以便精确匹配

,因为所有嵌套数组都具有预定义数量的元素,所有这些元素都具有相同的索引,您可以使用循环而不是第三个
foreach

$sum = [];
foreach($weekly as $aSet)
{
    foreach($aSet as $k => $kv)
    {
        $sum[$kv[0]][0] = $kv[0];
        $sum[$kv[0]][1] = $kv[1];
        for($i = 2; $i <= 3; $i++)
        {
            $sum[$kv[0]][$i] += $kv[$i];
        }
    }
}
echo "<pre>";
print_r($sum);
echo "</pre>";
如果您喜欢带有编号索引的数组,请执行以下操作:

Array
(
    [0] => Array
        (
            [0] => Week - 1
            [1] => 2019-08-05
            [2] => 8
            [3] => 10
        )

    [1] => Array
        (
            [0] => Week - 2
            [1] => 2019-08-12
            [2] => 12
            [3] => 14
        )

    [2] => Array
        (
            [0] => Week - 3
            [1] => 2019-08-19
            [2] => 16
            [3] => 18
        )

    [3] => Array
        (
            [0] => Week - 4
            [1] => 2019-08-26
            [2] => 13
            [3] => 14
        )

)

您好,您尝试了什么?您是否可以显示阵列的
var\u导出
输出,而不是
var\u dump
print\r
输出?
Array
(
    [Week - 1] => Array
        (
            [0] => Week - 1
            [1] => 2019-08-05
            [2] => 8
            [3] => 10
        )

    [Week - 2] => Array
        (
            [0] => Week - 2
            [1] => 2019-08-12
            [2] => 12
            [3] => 14
        )

    [Week - 3] => Array
        (
            [0] => Week - 3
            [1] => 2019-08-19
            [2] => 16
            [3] => 18
        )

    [Week - 4] => Array
        (
            [0] => Week - 4
            [1] => 2019-08-26
            [2] => 13
            [3] => 14
        )

)
echo "<pre>";
print_r(array_values($sum));
echo "</pre>";
Array
(
    [0] => Array
        (
            [0] => Week - 1
            [1] => 2019-08-05
            [2] => 8
            [3] => 10
        )

    [1] => Array
        (
            [0] => Week - 2
            [1] => 2019-08-12
            [2] => 12
            [3] => 14
        )

    [2] => Array
        (
            [0] => Week - 3
            [1] => 2019-08-19
            [2] => 16
            [3] => 18
        )

    [3] => Array
        (
            [0] => Week - 4
            [1] => 2019-08-26
            [2] => 13
            [3] => 14
        )

)