我有2个加载JSON数据的api端点... 1.主题专家
阵 ( [0] =>排列 ( [ExpertiseId] => 1 [IndustryId] => 1 [PersonId] => 3 ) ... )
我想将两个函数都传递给数组,指定合并到[matter.PersonId] => [people.Id]所以返回的数组将成为
阵 ( [0] =>排列 ( [ExpertiseId] => 1 [IndustryId] => 1 [PersonId] => 3 [Id] => 1 [姓名] =>乔 [办公室] =>纽约 ) ... )
答案 0 :(得分:0)
您必须迭代两个数组并以可能发生合并的方式重新组织数据。在实践中,这意味着通过PersonId
重新调整第一个数组,并通过Id
重新调整第二个数组;使用array_column
非常容易:
$matter = array_column($matter, null, 'PersonId');
$people = array_column($people, null, 'Id');
此时只剩下一个简单的任务:合并$matter
和$people
中共享相同密钥的项目(数组)。
在一个完美的世界中,它将是一个带有array_merge_recursive
的单行,但该函数实际上并不合并具有这些整数键的数组(我们用作键的id是整数)。因此,按顺序进行一些标准迭代:选择一个数组并将其内容与另一个数据合并:
foreach ($people as $id => $data) {
// If there's a guarantee that both arrays will definitely have the same
// set of keys (ids) so that $matter[$id] is guaranteed to exist,
// you can also use the simpler: $matter[$id] += $data
$matter[$id] = isset($matter[id]) ? $matter[$id] + $data : $data;
}
...现在$matter
将所有数据合并在一起。
答案 1 :(得分:-1)
尝试使用array_merge()
$ newArray = array_merge(first_array,second_array);