Объединение двух многомерных массивов, берущих структуру одного и содержимого другого в php - PullRequest
0 голосов
/ 30 апреля 2018

Я немного новичок в PHP. Есть ли способ объединить два следующих массива так, чтобы ключи [2181] и [2180] (и все их содержимое) во втором массиве могли заменить два объекта datetime в первом массиве, сохраняя при этом структуру первого массив? Объекты datetime из первого массива будут иметь то же значение ключа [date], что и значение ключа [date] из второго массива с индексами [2182] и [2180], хотя я не уверен, что этот общий ключ => значение будет необходимо для правильного объединения массивов.

 1.)  Array 
            (
                [0] => Array
                    (
                        [0] => DateTime Object
                            (
                                [date] => 2017-04-23 13:35:17.000000
                                [timezone_type] => 3
                                [timezone] => America/Denver
                            )

                                    )
                [1] => Array
                     (
                        [0] => DateTime Object
                            (
                                [date] => 2017-04-22 13:35:17.000000
                                [timezone_type] => 3
                                [timezone] => America/Denver
                            )
                    )


 2.) Array
    (
        [2182] => Array
            (
                [id] => 2182
                [date] => 2017-04-23
                [door] => Array
                    (
                        [1] => Array
                            (
                                [id] => 2999
                            )
                        )

                  )

        [2180] => Array
            (
                [id] => 2180
                [date] => 2017-04-22
                [door] => Array
                    (
                        [1] => Array
                            (
                                [id] => 2994
                            )

                    )
                )

Этот последний массив - это то, как мне нужно его структурировать.

 3.)  Array 
            (
                [0] => Array
                    (
                        [2182] => Array
                    (
                        [id] => 2182
                        [date] => 2017-04-23
                        [door] => Array
                            (
                                [1] => Array
                                    (
                                        [id] => 2999
                                    )
                                )
                     )

                                    )
                [1] => Array
                     (
                        [2180] => Array
                     (
                          [id] => 2180
                          [date] => 2017-04-22
                          [door] => Array
                            (
                                [1] => Array
                                    (
                                        [id] => 2994
                                    )
                               )
                        )
    )

Заранее спасибо!

1 Ответ

0 голосов
/ 30 апреля 2018

Я не понимаю, о чем именно вы спрашиваете.

Учитывая окончательный массив, как вы хотите в вашем вопросе, вы можете сделать так

<?php

$date = [[0=>new dateTime()], [new dateTime()]];// why this array if you are not using..

$arr = [
    2182=>["id"=>2182,"date"=>"2017-04-5", "door"=>[1=>["id"=>2999]]],
    2180=>["id"=>2180,"date"=>"2017-04-22", "door"=>[1=>["id"=>2994]]]
];

print_r(($arr));

$newArr = [];
foreach($arr as $a){
    $newArr[] = $a;
}


print_r($newArr);

Проверено онлайн

...