我有许多包含一个 ID 作为主键的数组,每个 id 下都有多维信息。这里有两个例子:
第一个示例数组:
array
14181 =>
array
'industries' =>
array
'weight' => string '105652' (length=6)
'count' => string '11' (length=2)
48354 =>
array
'industries' =>
array
'weight' => string '508866' (length=6)
'count' => string '10' (length=2)
第二个示例数组:
array
16434 =>
array
'business_types' =>
array
'weight' => string '104614' (length=6)
'count' => string '1' (length=1)
48354 =>
array
'business_types' =>
array
'weight' => string '103610' (length=6)
'count' => string '10' (length=2)
我想获得许多像这样的数组的交集(基于键),但我需要为每个键保留每个数组的权重和计数数据。请注意,每个数组的权重和计数数据不同。在这种情况下,business_type 和行业。
需要的最终数组:
array
48354 =>
array
'business_types' =>
array
'weight' => string '103610' (length=6)
'count' => string '10' (length=2)
'industries' =>
array
'weight' => string '508866' (length=6)
'count' => string '10' (length=2)
最初我并没有试图保持重量和计数,所以我只是简单地执行一个array_intersect_keys()
并且工作完成了。现在我需要保留这些数据。我将子数组命名为不同的东西,希望array_intersect_keys()
能保留它,但是,它只保留函数中的第一个数组。
有没有首选的方法来做这样的事情?
我能想出的唯一解决方案是将所有数组减少为最终 ID (keys) 的列表,然后循环遍历该数组,从我们比较的每个原始数组中提取权重和计数信息。