0
我有一个大主机名数组及其相应的位置。查找拦截两个数组,然后合并两个
Array ([ABC01] => Array ([hostid] => 12345
[lat] => 123
[lon] => 123
[adr] => 126 Foo Street
[city] => Rocky Hill
[state] => Connecticut
[country] => USA)
[ABC02] => Array ([hostid] => 12346
[lat] => 345
[lon] => 345
[adr] => 123 Foo Street
[city] => Boston
[state] => Massachusetts
[country] => USA)
[ABC03] => Array ([hostid] => 12346
[lat] => 345
[lon] => 345
[adr] => 123 Foo Street
[city] => New York City
[state] => New York
[country] => USA)
.....)
我比较它更小阵 - 同一个主机名,但它链接到IP地址:
Array ([ABC01] => Array ([ip] => 192.168.2.1)
[ABC02] => Array ([ip] => 192.168.2.2)
[ABC03] => Array ([ip] => 192.168.2.3)
)
我想创建下面的数组:
[ABC02] => Array ([hostid] => 12346
[lat] => 345
[lon] => 345
[adr] => 123 Foo Street
[city] => Boston
[state] => Massachusetts
[country] => USA
[ip] => 192.168.2.1)
我试图找到数组的交集,然后合并两个(找到相同的键,然后合并)。我尝试了各种功能,但最终的结果从来都不是我想要的。
我设法找到一个函数here合并常见的钥匙,但它包含在另一个数组中的位置字段数组中的一个数组返回的IP,如下所示:
Array ([ABC02] => Array ([0] => Array ([hostid] => 12346
[lat] => 345
[lon] => 345
[adr] => 123 Foo Street
[city] => Boston
[state] => Massachusetts
[country] => USA
[1] => Array ([ip] => 192.168.2.1)))
是否有更简单的方法做到这一点?
对不起,我没有指定:我不想全部合并两者 - 我希望截取两者,然后将较大阵列的相应值合并到较小的阵列中。用array_merge_recursive,我可以得到完整的列表。我知道我可以再用一个array_intercept_key和更小的数组来给我我想要的东西 - 它似乎是重复的。 – l33tspeak 2015-04-01 20:31:29
已编辑。如果我现在明白了,那么它仍然非常简单。 – AbraCadaver 2015-04-01 20:34:27
谢谢 - 这是诀窍!我开始做一个前端项目,所以我现在只能回到这个看起来很乏味的任务。 – l33tspeak 2015-04-07 14:06:17