Проблема с заменой массива - PullRequest
0 голосов
/ 17 апреля 2019

У нас есть 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 голосов
/ 17 апреля 2019

Кажется, что у вас есть массив объектов (данные 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));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...