阵列替换问题

时间:2019-04-17 11:55:16

标签: php arrays laravel

我们有2个数组,我们想将第二个数组中的值替换为第一个数组,一切顺利,除了要复制一个键。

数组:

数组1

    [
        {
            "1": 0
        },
        {
            "2": 0
        },
        {
            "3": 0
        },
        {
            "4": 0
        },
        {
            "5": 0
        },
        {
            "6": 0
        },
        {
            "7": 0
        },
        {
            "8": 0
        },
        {
            "9": 0
        },
        {
            "10": 0
        },
        {
            "11": 0
        },
        {
            "12": 0
        }
    ]

数组2

   [
            {
                "2": 4526
            },
            {
                "3": 81
            },
            {
                "4": 20
            }
        ]

我们继续

array_replace($array1, $array2);

它应该返回键2、3和4的值的更新-但是我们收到以下结果:

[
    [
        {
            "2": 4526
        },
        {
            "3": 81
        },
        {
            "4": 20
        },
        {
            "4": 0
        },
        {
            "5": 0
        },
        {
            "6": 0
        },
        {
            "7": 0
        },
        {
            "8": 0
        },
        {
            "9": 0
        },
        {
            "10": 0
        },
        {
            "11": 0
        },
        {
            "12": 0
        }
    ]
]

数字4的密钥重复,而数字1的密钥完全丢失。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

似乎您有对象数组(json数据),可以尝试这样:

$result_as_array = array_replace(

      call_user_func_array('array_merge', json_decode($array1, true),
      call_user_func_array('array_merge', json_decode($array2, true)
);

现在,在对象数组(json)中获取所需的响应:

$result = json_encode(array_chunk($result_as_array ,1,true));