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

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

Php 组合多维数组

Php 组合多维数组,php,Php,我已经找到好几个职位,但没有一个是工作。尝试了数组合并、数组替换递归、数组合并递归,但没有达到我的目的 我想将下面的5个阵列合并成一个阵列,但我不明白为什么年份在变化。是因为文件上说: 但是,如果数组具有相同的数字键,则后面的值 不会覆盖原始值,但会追加 我得到的输出 {“x”:{“2015”:{“s”:“xxxxxx”,“d”:1},“2016”:{“s”:“yyyyyyyyy”,2017:{“d”:3},“2018”:{“s”:“SSSSSS”,“d”:22},“2019”:{“s”:“

我已经找到好几个职位,但没有一个是工作。尝试了数组合并、数组替换递归、数组合并递归,但没有达到我的目的

我想将下面的5个阵列合并成一个阵列,但我不明白为什么年份在变化。是因为文件上说:

但是,如果数组具有相同的数字键,则后面的值 不会覆盖原始值,但会追加


我得到的输出 {“x”:{“2015”:{“s”:“xxxxxx”,“d”:1},“2016”:{“s”:“yyyyyyyyy”,2017:{“d”:3},“2018”:{“s”:“SSSSSS”,“d”:22},“2019”:{“s”:“DDDDDDDDD”,“d”:21},“2020”:{“s”:“ffffffff”,“d”:52}


编辑:对不起,数组\u replace\u recursive给出了正确的结果。我在phpfiddle.org模拟中做错了什么…

我不相信你。我甚至执行了您的代码(使用
array\u replace\u recursive
),结果如下:

{
    "x": {
        "2015": {
            "s": "xxxxxx",
            "d": 1
        },
        "2014": {
            "s": "yyyyyyyyy",
            "d": 3
        },
        "2013": {
            "s": "sssssss",
            "d": 22
        },
        "2012": {
            "s": "ddddddddddddd",
            "d": 21
        },
        "2011": {
            "s": "ffffffff",
            "d": 52
        }
    }
}
也许你做了别的什么?
是的,在这种情况下,
array\u merge\u recursive
不是一个选项。

输出应该是什么样子?请编辑你的问题.哦,该死。。我认为phpfiddle.org中有些东西搞砸了……无论我在做什么改变,它都不会改变输出。。。
{
    "x": {
        "2015": {
            "s": "xxxxxx",
            "d": 1
        },
        "2014": {
            "s": "yyyyyyyyy",
            "d": 3
        },
        "2013": {
            "s": "sssssss",
            "d": 22
        },
        "2012": {
            "s": "ddddddddddddd",
            "d": 21
        },
        "2011": {
            "s": "ffffffff",
            "d": 52
        }
    }
}