首页 > 解决方案 > 在php中组合两个多维数组,其中一个的结构和另一个的内容

问题描述

我对 PHP 有点陌生。有没有办法合并以下两个数组,以便第二个数组中的 [2181] 和 [2180] 键(及其所有内容)可以替换第一个数组中的两个日期时间对象,同时仍然保持第一个数组的结构大批?第一个数组中的 datetime 对象将具有与 [2182] 和 [2180] 索引处第二个数组中的 [date] 键值相同的 [date] 键值,尽管我不确定此共享键是否 => value 将是正确合并数组所必需的。

 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
                                    )
                               )
                        )
    )

提前致谢!

标签: phparraysmultidimensional-arrayarray-merge

解决方案


我不明白你到底在问什么。

给定您问题中想要的最终数组,您可以这样做

<?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);

在线测试


推荐阅读