【发布时间】:2011-09-23 00:27:37
【问题描述】:
首先,很抱歉解释冗长。我在 PHP 中有两个数组。第一个数组是一个对象数组。第二个数组是数组数组。基本上,我想循环,并将对象与其匹配的数组合并,并返回一个合并的对象。
请看下面print_r()的对象结构数组:
Array
(
[0] => stdClass Object
(
[gear] => helloworld
[status] => running
[started] => 40 Minutes Ago
[start] => index.js
[route] => 127.0.0.1:3000
[parameters] => Array
(
)
)
[1] => stdClass Object
(
[gear] => test
[status] => stopped
[started] =>
[start] => index.js
[route] =>
[parameters] => Array
(
)
)
[2] => stdClass Object
(
[gear] => test2
[status] => stopped
[started] =>
[start] => index.js
[route] =>
[parameters] => Array
(
[0] => first
[1] => second
[2] => third
)
)
)
请看下面print_r()的数组结构数组:
Array
(
[0] => Array
(
[gear] => helloworld
[machine_id] => E6z5ekvQ
[created_by] => 10010
[modified_by] => 10010
[created] => 2011-09-22T16:30:11-07:00
[modified] => 2011-09-22T16:30:11-07:00
)
[1] => Array
(
[gear] => test
[machine_id] => E6z5ekvQ
[created_by] => 10010
[modified_by] => 10010
[created] => 2011-09-22T16:44:25-07:00
[modified] => 2011-09-22T16:44:25-07:00
)
[2] => Array
(
[gear] => test2
[machine_id] => E6z5ekvQ
[created_by] => 10010
[modified_by] => 10010
[created] => 2011-09-22T16:45:43-07:00
[modified] => 2011-09-22T16:45:43-07:00
)
)
所以基本上两者的匹配键是gear。所以我们应该将第一个对象的齿轮与数组中的第二个齿轮相匹配,并返回如下内容:
stdClass Object
(
[gear] => helloworld
[status] => running
[started] => 40 Minutes Ago
[start] => index.js
[route] => 127.0.0.1:3000
[parameters] => Array
(
)
[machine_id] => E6z5ekvQ
[created_by] => 10010
[modified_by] => 10010
[created] => 2011-09-22T16:30:11-07:00
[modified] => 2011-09-22T16:30:11-07:00
)
注意,齿轮被合并为对象的一个属性,显然齿轮不会出现两次。想法?
【问题讨论】:
-
循环并匹配唯一和/或识别特征,并存储在另一个对象中?
-
您可能需要考虑为您的对象创建一个类,您可以在其中将数组/对象传递给构造函数或
load()方法来设置属性。