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