用php中的键值更改合并多维数组中的重复数组

用php中的键值更改合并多维数组中的重复数组,php,multidimensional-array,Php,Multidimensional Array,这是我的多维数组: array( array('object_id' => 10, 'score' => 1), array('object_id' => 11, 'score' => 1), array('object_id' => 12, 'score' => 1), array('object_id' => 11, 'score' => 1), array('object_id' => 10, 'score' => 1), arr

这是我的多维数组:

array(
array('object_id' => 10, 'score' => 1),
array('object_id' => 11, 'score' => 1),
array('object_id' => 12, 'score' => 1),
array('object_id' => 11, 'score' => 1),
array('object_id' => 10, 'score' => 1),
array('object_id' => 14, 'score' => 1),
)
我的预期产出是:

array(
    array('object_id' => 10, 'score' => 2),
    array('object_id' => 11, 'score' => 2),
    array('object_id' => 12, 'score' => 1),
    array('object_id' => 14, 'score' => 1),
    )
口头上说,我需要的是在多维数组中找到唯一的object_id,并结合它们的“score”值。在php中最有效的方法是什么

$output = array();
foreach($array as $e)
{
    if(isset($output[$e['object_id']]))
    {
        $output[$e['object_id']]['score']+=$e['score'];
    }else
    {
        $output[$e['object_id']] = $e;  
    }
}

    print_r(array_values($output));
这里是测试

$ cat test.php
<?php

$array = array(
array('object_id' => 10, 'score' => 1),
array('object_id' => 11, 'score' => 1),
array('object_id' => 12, 'score' => 1),
array('object_id' => 11, 'score' => 1),
array('object_id' => 10, 'score' => 1),
array('object_id' => 14, 'score' => 1),
);

$output = array();
foreach($array as $e)
{
    if(isset($output[$e['object_id']]))
    {
        $output[$e['object_id']]['score']+=$e['score'];
    }else
    {
        $output[$e['object_id']] = $e;  
    }
}

// Input
print_r($array);

// Output
print_r(array_values($output));

?>
$ php test.php
Array
(
    [0] => Array
        (
            [object_id] => 10
            [score] => 1
        )

    [1] => Array
        (
            [object_id] => 11
            [score] => 1
        )

    [2] => Array
        (
            [object_id] => 12
            [score] => 1
        )

    [3] => Array
        (
            [object_id] => 11
            [score] => 1
        )

    [4] => Array
        (
            [object_id] => 10
            [score] => 1
        )

    [5] => Array
        (
            [object_id] => 14
            [score] => 1
        )

)
Array
(
    [0] => Array
        (
            [object_id] => 10
            [score] => 2
        )

    [1] => Array
        (
            [object_id] => 11
            [score] => 2
        )

    [2] => Array
        (
            [object_id] => 12
            [score] => 1
        )

    [3] => Array
        (
            [object_id] => 14
            [score] => 1
        )

)

仅仅看一下手册就比张贴这个问题检查要简单/快速得多