Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.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,我有一个具有以下结构的数组 [M] => Array ( [1] => 23 [2] => 0 [3] => 0 [4] => 0 ) )

我有一个具有以下结构的数组

                [M] => Array
                    (
                        [1] => 23
                        [2] => 0
                        [3] => 0
                        [4] => 0
                    )

            )

        [P] => Array
            (
                [F] => Array
                    (
                        [1] => 1
                        [2] => 11
                        [3] => 7
                        [4] => 1
                    )

                [M] => Array
                    (
                        [1] => 4
                        [2] => 11
                        [3] => 8
                        [4] => 0
                    )

            )

    )
是否有一个函数可以将元素组合在一起,求和总数

                [M] => Array
                    (
                        [1] => 23
                        [2] => 0
                        [3] => 0
                        [4] => 0
                    )

            )

        [P] => Array
            (
                [F] => Array
                    (
                        [1] => 1
                        [2] => 11
                        [3] => 7
                        [4] => 1
                    )

                [M] => Array
                    (
                        [1] => 4
                        [2] => 11
                        [3] => 8
                        [4] => 0
                    )

            )

    )
谢谢你给我指点如何做到这一点。我在这里包含了数组的一部分,然后降低了希望的结果

                [M] => Array
                    (
                        [1] => 23
                        [2] => 0
                        [3] => 0
                        [4] => 0
                    )

            )

        [P] => Array
            (
                [F] => Array
                    (
                        [1] => 1
                        [2] => 11
                        [3] => 7
                        [4] => 1
                    )

                [M] => Array
                    (
                        [1] => 4
                        [2] => 11
                        [3] => 8
                        [4] => 0
                    )

            )

    )
我可以通过在php mysql查询上重新创建第二个数组来实现这一点,但这并不是一种非常有效的方法

Array
(
    [1] => Array
        (
            [Y01MA] => Array
                (
                    [O] => Array
                        (
                            [F] => Array
                                (
                                    [1] => 4
                                    [2] => 6
                                    [3] => 1
                                )

                            [M] => Array
                                (
                                    [1] => 5
                                    [2] => 5
                                )

                        )

                    [P] => Array
                        (
                            [F] => Array
                                (
                                    [2] => 4
                                    [3] => 6
                                    [4] => 1
                                )

                            [M] => Array
                                (
                                    [1] => 1
                                    [2] => 4
                                    [3] => 5
                                )

                        )

                )

            [Y01MB] => Array
                (
                    [O] => Array
                        (
                            [F] => Array
                                (
                                    [1] => 7
                                    [2] => 2
                                )

                            [M] => Array
                                (
                                    [1] => 11
                                    [2] => 1
                                    [3] => 1
                                )

                        )

                    [P] => Array
                        (
                            [F] => Array
                                (
                                    [2] => 3
                                    [3] => 6
                                )

                            [M] => Array
                                (
                                    [2] => 3
                                    [3] => 9
                                    [4] => 1
                                )

                        )

                )

        )
                [M] => Array
                    (
                        [1] => 23
                        [2] => 0
                        [3] => 0
                        [4] => 0
                    )

            )

        [P] => Array
            (
                [F] => Array
                    (
                        [1] => 1
                        [2] => 11
                        [3] => 7
                        [4] => 1
                    )

                [M] => Array
                    (
                        [1] => 4
                        [2] => 11
                        [3] => 8
                        [4] => 0
                    )

            )

    )
理想情况下,我最终会得到这样的结果

                [M] => Array
                    (
                        [1] => 23
                        [2] => 0
                        [3] => 0
                        [4] => 0
                    )

            )

        [P] => Array
            (
                [F] => Array
                    (
                        [1] => 1
                        [2] => 11
                        [3] => 7
                        [4] => 1
                    )

                [M] => Array
                    (
                        [1] => 4
                        [2] => 11
                        [3] => 8
                        [4] => 0
                    )

            )

    )
排列 ( [1] =>阵列 ( [O] =>阵列 ( [F] =>阵列 ( [1] => 18 [2] => 2 [3] => 0 [4] => 0 )

                [M] => Array
                    (
                        [1] => 23
                        [2] => 0
                        [3] => 0
                        [4] => 0
                    )

            )

        [P] => Array
            (
                [F] => Array
                    (
                        [1] => 1
                        [2] => 11
                        [3] => 7
                        [4] => 1
                    )

                [M] => Array
                    (
                        [1] => 4
                        [2] => 11
                        [3] => 8
                        [4] => 0
                    )

            )

    )

您需要数组的递归和

                [M] => Array
                    (
                        [1] => 23
                        [2] => 0
                        [3] => 0
                        [4] => 0
                    )

            )

        [P] => Array
            (
                [F] => Array
                    (
                        [1] => 1
                        [2] => 11
                        [3] => 7
                        [4] => 1
                    )

                [M] => Array
                    (
                        [1] => 4
                        [2] => 11
                        [3] => 8
                        [4] => 0
                    )

            )

    )
可以通过使用函数递归减少数组来实现这一点

                [M] => Array
                    (
                        [1] => 23
                        [2] => 0
                        [3] => 0
                        [4] => 0
                    )

            )

        [P] => Array
            (
                [F] => Array
                    (
                        [1] => 1
                        [2] => 11
                        [3] => 7
                        [4] => 1
                    )

                [M] => Array
                    (
                        [1] => 4
                        [2] => 11
                        [3] => 8
                        [4] => 0
                    )

            )

    )
function sumRecursive($carry, $item) {
    if(is_array($item)){
        return array_reduce($item, 'sumRecursive', $carry);
    }
    return $carry+$item ;
}
$sum = sumRecursive(0, $arr);
下面是示例工作代码:

                [M] => Array
                    (
                        [1] => 23
                        [2] => 0
                        [3] => 0
                        [4] => 0
                    )

            )

        [P] => Array
            (
                [F] => Array
                    (
                        [1] => 1
                        [2] => 11
                        [3] => 7
                        [4] => 1
                    )

                [M] => Array
                    (
                        [1] => 4
                        [2] => 11
                        [3] => 8
                        [4] => 0
                    )

            )

    )
另一种方法是利用和迭代第一种方法

                [M] => Array
                    (
                        [1] => 23
                        [2] => 0
                        [3] => 0
                        [4] => 0
                    )

            )

        [P] => Array
            (
                [F] => Array
                    (
                        [1] => 1
                        [2] => 11
                        [3] => 7
                        [4] => 1
                    )

                [M] => Array
                    (
                        [1] => 4
                        [2] => 11
                        [3] => 8
                        [4] => 0
                    )

            )

    )

工作代码:

您是否需要以任何方式对它们进行分组,或者只对数组中的每个值进行分组。到目前为止,您尝试了什么?理想情况下,我希望能够计算出每个[M]和[F]有多少[1][2][3][4],您能给出一个清晰的示例,说明您在问题中想要的输出吗。
                [M] => Array
                    (
                        [1] => 23
                        [2] => 0
                        [3] => 0
                        [4] => 0
                    )

            )

        [P] => Array
            (
                [F] => Array
                    (
                        [1] => 1
                        [2] => 11
                        [3] => 7
                        [4] => 1
                    )

                [M] => Array
                    (
                        [1] => 4
                        [2] => 11
                        [3] => 8
                        [4] => 0
                    )

            )

    )