多维数组和合并列中的重复值

Duplicate values on multidimensionnal array and merge column

我有一个这样的数组:

$my_arr = array();
array(14) {
[0]=>
    array(4) {
    ["id_dde"]=>
    string(3) "535"
    ["id_station"]=>
    string(3) "130"
    ["id_catalog"]=>
    string(2) "41"
    ["quantity"]=>
    string(2) "50"
  }
  [1]=>
  array(4) {
    ["id_dde"]=>
    string(3) "535"
    ["id_station"]=>
    string(3) "130"
    ["id_catalog"]=>
    string(3) "259"
    ["quantity"]=>
    string(2) "70"
  }

有很多这样的索引。 我的目标是在 id_dde、id_station 和 id_catalog 上具有唯一值。如果我在这些列上有两个具有相似值的数组索引,我想删除一个索引,并合并两个数量列。这是一个例子:

$my_arr = array();
array(14) {
[0]=>
    array(4) {
    ["id_dde"]=>
    string(3) "535"
    ["id_station"]=>
    string(3) "130"
    ["id_catalog"]=>
    string(2) "41"
    ["quantity"]=>
    string(2) "50"
  }
  [1]=>
  array(4) {
    ["id_dde"]=>
    string(3) "535"
    ["id_station"]=>
    string(3) "130"
    ["id_catalog"]=>
    string(3) "41"
    ["quantity"]=>
    string(2) "5"
  }

=>

array(14) {
[0]=>
    array(4) {
    ["id_dde"]=>
    string(3) "535"
    ["id_station"]=>
    string(3) "130"
    ["id_catalog"]=>
    string(2) "41"
    ["quantity"]=>
    string(2) "55"
  }

我该怎么做?我尝试使用 double foreach 和 unset 但我没有得到正确的答案,我想还有更好的方法吗?

谢谢!

我得到了双 foreach 的预期结果。试试这个:

$result=[];
foreach ($my_arr as &$dde1) {
    $qty = 0;
    foreach ($my_arr as $key => $dde2) {
        if ($dde1['id_dde'] == $dde2['id_dde'] && $dde1['id_station'] == $dde2['id_station'] && $dde1['id_catalog'] == $dde2['id_catalog']) {
            $qty += $dde2['quantity'];
            unset($my_arr[$key]);
        }
    }
    $dde1['quantity'] = $qty;
    $result[] = $dde1;
}