我有两个对象数组。
第一个数组$x
:
[0] => stdClass Object
(
[id] => 54
[value] => test54
[something] => testtest54
)
[1] => stdClass Object
(
[id] => 21
[value] => test21
[something] => testtest21
)
...
第二个数组$y
:
[0] => stdClass Object
(
[id] => 21
[value] => test21_new_value
)
[1] => stdClass Object
(
[id] => 54
[value] => test54_new_value
)
...
我想更新我的第一个数组$x
导入value
第二个数组的 ( $y
) 字段,它具有相同的id
,我想要:
[0] => stdClass Object
(
[id] => 54
[value] => test54_new_value
[something] => testtest54
)
[1] => stdClass Object
(
[id] => 21
[value] => test21_new_value
[something] => testtest21
)
...
我可以做这样的事情:
foreach($x as $k => $v) {
foreach($y as $k2 => $v2) {
if ($v->id === $v2->id) $x[$k]->value = $v2->value;
}
}
但我不喜欢这样,因为我必须$y
为每个数组行走$x
(如果我有 100 个项目$x
和 100 个项目$y
,它会循环 100*100 次)。我认为有一种更高效、更优雅或更优化的方法可以做到这一点,但我不知道该怎么做(我没有找到对这个具体问题的准确回应,所以我在这里问)。