Php 分配数组键并使用相同的键添加其值

Php 分配数组键并使用相同的键添加其值,php,multidimensional-array,Php,Multidimensional Array,我有这样的数组 array( [0]=>111 //id [1]=>5 //value to ad [2]=>3 //value to ad ) array( [0]=>111 [1]=>3 [2]=>7 ) array( [0]=>111 [1]=>2 [2]=>1 ) array( [0]=>222 [1]=>5 [2]=>3 ) 如何筛选结果是

我有这样的数组

array(
  [0]=>111 //id
  [1]=>5   //value to ad
  [2]=>3   //value to ad
)
array(
  [0]=>111
  [1]=>3
  [2]=>7   
)
array(
  [0]=>111
  [1]=>2
  [2]=>1   
)
array(
  [0]=>222
  [1]=>5
  [2]=>3   
)
如何筛选结果是每个“id”显示一次的数组,并在它们具有相同的“id”时添加“要添加的值”。因此,结果将是:

array(
  [111]=>array(
          [0]=>10
          [1]=>11
         )
  [222]=>array(
          [0]=>5
          [1]=>3
         )
)

感谢您的回答和建议

您必须使用循环手动执行此操作。像这样的方法应该会奏效:

$result = array();

foreach( $input as $row) {
    $id = array_shift( $row);

    foreach( $row as $key => $value) {

        $result[ $id ][ $key ] = 
            ( isset( $result[ $id ][ $key ]) ? 
                  $result[ $id ][ $key ] + $value : 
                  $value
            );
    }
}
输出:

array(2) {
  [111]=>
  array(2) {
    [0]=>
    int(10)
    [1]=>
    int(11)
  }
  [222]=>
  array(2) {
    [0]=>
    int(5)
    [1]=>
    int(3)
  }
}

代码 附加说明 关键是用来检查数组中是否已经存在索引。

保持简单

foreach ($arrays as $array) {

    $final[$array[0]] = array(
        @$final[$array[0]][0] + $array[1],
        @$final[$array[0]][1] + $array[2]
    );
}

Array
(
    [111] => Array
        (
            [0] => 10
            [1] => 11
        )

    [222] => Array
        (
            [0] => 5
            [1] => 3
        )

)
foreach ($arrays as $array) {

    $final[$array[0]] = array(
        @$final[$array[0]][0] + $array[1],
        @$final[$array[0]][1] + $array[2]
    );
}