多维结果数组需要使用PHP合并为具有相同键值的单个结果数组
我有一个数组的多维结果,需要在一个数组中使用PHP合并相同的键值,如下所示 结果多维结果数组需要使用PHP合并为具有相同键值的单个结果数组,php,arrays,multidimensional-array,merge,Php,Arrays,Multidimensional Array,Merge,我有一个数组的多维结果,需要在一个数组中使用PHP合并相同的键值,如下所示 结果 Array ( [0] => Array ( [POBI] => Array ( [average] => 3.9885520361991 [name] => POBI [year] =>
Array
(
[0] => Array
(
[POBI] => Array
(
[average] => 3.9885520361991
[name] => POBI
[year] => 2014-2015
)
[POE] => Array
(
[average] => 4
[name] => POE
[year] => 2014-2015
)
[LOS] => Array
(
[average] => 4
[name] => LOS
[year] => 2014-2015
)
[Other Cop] => Array
(
)
)
[1] => Array
(
[POBI] => Array
(
[average] => 4
[name] => POBI
[year] => 2014-2015
)
[POE] => Array
(
[average] => 3.9
[name] => POE
[year] => 2014-2015
)
[LOS] => Array
(
[average] => 4
[name] => LOS
[year] => 2014-2015
)
[Other Cop] => Array
(
[average] => 2
[name] => OC
[year] => 2014-2015
)
)
[1] => Array
(
[POBI] => Array
(
[average] => 7
[name] => POBI
[year] => 2014-2015
)
[POE] => Array
(
[average] => 3.0
[name] => POE
[year] => 2014-2015
)
[LOS] => Array
(
[average] => 4
[name] => LOS
[year] => 2014-2015
)
[Other Cop] => Array
(
[average] => 1.8
[name] => OC
[year] => 2014-2015
)
)
)
Array
(
[POBI] => Array
(
[0] => Array
(
[average] => 3.9885520361991
[name] => POBI
[year] => 2014-2015
)
[1] => Array
(
[average] => 4
[name] => POBI
[year] => 2014-2015
)
[2] => Array
(
[average] => 7
[name] => POBI
[year] => 2014-2015
)
)
[POE] => Array
(
[0] => Array
(
[average] => 4
[name] => POE
[year] => 2014-2015
)
[1] => Array
(
[average] => 3.9
[name] => POE
[year] => 2014-2015
)
[2] => Array
(
[average] => 3.0
[name] => POE
[year] => 2014-2015
)
)
[LOS] => Array
(
[0] => Array
(
[average] => 4
[name] => LOS
[year] => 2014-2015
)
[1] => Array
(
[average] => 4
[name] => LOS
[year] => 2014-2015
)
[2] => Array
(
[average] => 4
[name] => LOS
[year] => 2014-2015
)
)
[Other Cop] => Array
(
[0] => Array
(
)
[1] => Array
(
[average] => 2
[name] => OC
[year] => 2014-2015
)
[2] => Array
(
[average] => 1.8
[name] => OC
[year] => 2014-2015
)
)
)
期望的结果
Array
(
[0] => Array
(
[POBI] => Array
(
[average] => 3.9885520361991
[name] => POBI
[year] => 2014-2015
)
[POE] => Array
(
[average] => 4
[name] => POE
[year] => 2014-2015
)
[LOS] => Array
(
[average] => 4
[name] => LOS
[year] => 2014-2015
)
[Other Cop] => Array
(
)
)
[1] => Array
(
[POBI] => Array
(
[average] => 4
[name] => POBI
[year] => 2014-2015
)
[POE] => Array
(
[average] => 3.9
[name] => POE
[year] => 2014-2015
)
[LOS] => Array
(
[average] => 4
[name] => LOS
[year] => 2014-2015
)
[Other Cop] => Array
(
[average] => 2
[name] => OC
[year] => 2014-2015
)
)
[1] => Array
(
[POBI] => Array
(
[average] => 7
[name] => POBI
[year] => 2014-2015
)
[POE] => Array
(
[average] => 3.0
[name] => POE
[year] => 2014-2015
)
[LOS] => Array
(
[average] => 4
[name] => LOS
[year] => 2014-2015
)
[Other Cop] => Array
(
[average] => 1.8
[name] => OC
[year] => 2014-2015
)
)
)
Array
(
[POBI] => Array
(
[0] => Array
(
[average] => 3.9885520361991
[name] => POBI
[year] => 2014-2015
)
[1] => Array
(
[average] => 4
[name] => POBI
[year] => 2014-2015
)
[2] => Array
(
[average] => 7
[name] => POBI
[year] => 2014-2015
)
)
[POE] => Array
(
[0] => Array
(
[average] => 4
[name] => POE
[year] => 2014-2015
)
[1] => Array
(
[average] => 3.9
[name] => POE
[year] => 2014-2015
)
[2] => Array
(
[average] => 3.0
[name] => POE
[year] => 2014-2015
)
)
[LOS] => Array
(
[0] => Array
(
[average] => 4
[name] => LOS
[year] => 2014-2015
)
[1] => Array
(
[average] => 4
[name] => LOS
[year] => 2014-2015
)
[2] => Array
(
[average] => 4
[name] => LOS
[year] => 2014-2015
)
)
[Other Cop] => Array
(
[0] => Array
(
)
[1] => Array
(
[average] => 2
[name] => OC
[year] => 2014-2015
)
[2] => Array
(
[average] => 1.8
[name] => OC
[year] => 2014-2015
)
)
)
我当前的实现尝试执行以下操作:
foreach($data as $k => $v) {
$results[$k] = array_column($arr, $k);
}
print_r($results);
$return = [];
foreach ($data as $key => $value) {
foreach ($value as $innerKey => $innerValue) {
if (!isset($return[$innerKey])) {
$return[$innerKey] = [];
}
$return[$innerKey][] = $innerValue;
}
}
var_dump($return);
die();
试着这样做:
foreach($data as $k => $v) {
$results[$k] = array_column($arr, $k);
}
print_r($results);
$return = [];
foreach ($data as $key => $value) {
foreach ($value as $innerKey => $innerValue) {
if (!isset($return[$innerKey])) {
$return[$innerKey] = [];
}
$return[$innerKey][] = $innerValue;
}
}
var_dump($return);
die();
试着这样做:
foreach($data as $k => $v) {
$results[$k] = array_column($arr, $k);
}
print_r($results);
$return = [];
foreach ($data as $key => $value) {
foreach ($value as $innerKey => $innerValue) {
if (!isset($return[$innerKey])) {
$return[$innerKey] = [];
}
$return[$innerKey][] = $innerValue;
}
}
var_dump($return);
die();
你的问题有一个简单的解决办法。实际上是一艘班轮
$mergedArray = array_merge_recursive($arrayOne, $arrayTwo);
// In your case
$merged = array_merge_recursive($array[0], $array[1]);
希望这能奏效
编辑
正如Brad Kent所建议的,如果有两个以上的值需要合并:
$merged = call_use_func_array('array_merge_recursive', array_values($array));
你的问题有一个简单的解决办法。实际上是一艘班轮
$mergedArray = array_merge_recursive($arrayOne, $arrayTwo);
// In your case
$merged = array_merge_recursive($array[0], $array[1]);
希望这能奏效
编辑
正如Brad Kent所建议的,如果有两个以上的值需要合并:
$merged = call_use_func_array('array_merge_recursive', array_values($array));
试试这个:
foreach ($yourArrayName as $items)
{
foreach ($items as $id => $item) {
$result[$id][] = $item;
}
}
print_r($result);
注意:顺便说一句,您的示例结果数据有1的重复索引。。。我想应该是打字错误。仅供参考。试试这个:
foreach ($yourArrayName as $items)
{
foreach ($items as $id => $item) {
$result[$id][] = $item;
}
}
print_r($result);
注意:顺便说一句,您的示例结果数据有1的重复索引。。。我想应该是打字错误。仅供参考。你很接近了。
试一试
这假设每个组都有相同的键。您很接近了。
试一试
这假设每个组都有相同的键。可能是这样的:
$results[$k][]=array\u column($arr,$k)代码>。这可能有效:$results[$k][]=array\u列($arr,$k)
。可能更像是$merged=call\u use\u func\u array('array\u merge\u recursive',array\u value($array))代码>(不能假设只有两个“子数组”需要合并)我有数组的结果集而不是单独的子数组可能更像$merged=call\u use\u func\u array('array\u merge\u recursive',array\u value($array))代码>(不能假设只有两个“子数组”需要合并)我有数组的结果集,而不是单个子数组