dsh1956 2018-08-09 12:47
浏览 18
已采纳

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

I have an array like that :

$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"
  }

With many indexes like that. My goal is to have a unique value on id_dde, id_station and id_catalog. If I have two indexes with array that have similar values on theses columns, I want to delete one index, and merge both quantity columns. Here is an example :

$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"
  }

How can I do that ? I tried with a double foreach and unset but I didn't get the right answer, I guess there is a better method too ?

Thanks!

  • 写回答

1条回答 默认 最新

  • dsrbb20862 2018-08-09 13:01
    关注

    I got an expect result with double foreach. Try this :

    $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;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用