Как можно слить между двумя многомерными массивами уважаемые их ключи - PullRequest
0 голосов
/ 25 марта 2019

Допустим, у меня есть следующие массивы:

Array
(
    [2001] => Array
        (
            [event_detail] => Array
                (
                    [1] => Array
                        (
                            [event_name] => Advocacy CPD 2019
                            [cpd_points] => 23
                        )

                    [5] => Array
                        (
                            [event_name] => Advocacy CPD 2019 new
                            [cpd_points] => 2
                        )

                )

        )

    [2002] => Array
        (
            [event_detail] => Array
                (
                    [2] => Array
                        (
                            [event_name] => Advocacy CPD 2011
                            [cpd_points] => 28
                        )

                    [4] => Array
                        (
                            [event_name] => Advocacy CPD 20195 new
                            [cpd_points] => 12
                        )

                )

        )

)

И второй:

Array
(
    [2001] => Array
        (
            [event_detail] => Array
                (
                    [1] => Array
                        (
                            [event_name] => Advocacy CPD 2020
                            [cpd_points] => 27
                        )

                )

        )

    [2052] => Array
        (
            [event_detail] => Array
                (
                    [2] => Array
                        (
                            [event_name] => Advocacy CPD 2052
                            [cpd_points] => 258
                        )

                    [4] => Array
                        (
                            [event_name] => Advocacy CPD 2019445 new
                            [cpd_points] => 78
                        )

                )

        )

)

И желаемый вывод:

Array
(
    [2001] => Array
        (
            [event_detail] => Array
                (
                    [1] => Array
                        (
                            [event_name] => Advocacy CPD 2019
                            [cpd_points] => 23
                        )

                    [5] => Array
                        (
                            [event_name] => Advocacy CPD 2019 new
                            [cpd_points] => 2
                        )

                    [6] => Array
                        (
                            [event_name] => Advocacy CPD 2020
                            [cpd_points] => 27
                        )

                )

        )

    [2002] => Array
        (
            [event_detail] => Array
                (
                    [2] => Array
                        (
                            [event_name] => Advocacy CPD 2011
                            [cpd_points] => 28
                        )

                    [4] => Array
                        (
                            [event_name] => Advocacy CPD 20195 new
                            [cpd_points] => 12
                        )

                )

        )

    [2052] => Array
        (
            [event_detail] => Array
                (
                    [2] => Array
                        (
                            [event_name] => Advocacy CPD 2052
                            [cpd_points] => 258
                        )

                    [4] => Array
                        (
                            [event_name] => Advocacy CPD 2019445 new
                            [cpd_points] => 78
                        )

                )

        )

)

Проблема в том,Я хотел бы объединить эти массивы с одним и тем же идентификатором [2001,2005,2002].Желаемая сортировка выходных данных должна быть такой же, как в первом массиве.

Мне удалось объединить эти массивы другим способом, но не удалось:

Как этого добиться?Любая помощь очень ценится.

1 Ответ

1 голос
/ 25 марта 2019

Довольно просто, просто зациклите второй массив и объедините, используя ключ к первому массиву:

foreach($array2 as $key => $val) {
    $array1[$key]['event_detail'] = array_merge($array1[$key]['event_detail'],
                                                $val['event_detail']);
}
...