多维结果数组需要使用PHP合并为具有相同键值的单个结果数组

多维结果数组需要使用PHP合并为具有相同键值的单个结果数组,php,arrays,multidimensional-array,merge,Php,Arrays,Multidimensional Array,Merge,我有一个数组的多维结果,需要在一个数组中使用PHP合并相同的键值,如下所示 结果 Array ( [0] => Array ( [POBI] => Array ( [average] => 3.9885520361991 [name] => POBI [year] =>

我有一个数组的多维结果,需要在一个数组中使用PHP合并相同的键值,如下所示

结果

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))(不能假设只有两个“子数组”需要合并)我有数组的结果集,而不是单个子数组