php 二维数组去重合并将相同数量累加

2024-01-28 10:34:05 举报文章

例如: 如下数组需去重并合并相同的数据

//by www.qzphp.cn
{
    "code": 200,
    "data": [
        {
            "title": "客房服务",
            "id": 4,
            "count": 1
        },
        {
            "title": "设备报修",
            "id": 5,
            "count": 1
        },
        {
            "title": "客房服务",
            "id": 4,
            "count": 1
        }
    ],
    "msg": "查询成功"
}

可以采用如下代码进行操作:

//by www.qzphp.cn
$data = array(3) {

          [0] => array(3) {
          
            ["title"] => string(12) "客房服务"
            
            ["id"] => int(4)
            
            ["count"] => int(1)
          }
          
          [1] => array(3) {
          
            ["title"] => string(12) "设备报修"
            
            ["id"] => int(5)
            
            ["count"] => int(1)
            
          }
          [2] => &array(3) {
          
            ["title"] => string(12) "客房服务"
            
            ["id"] => int(4)
            
            ["count"] => int(1)
            
          }
          
        }

$result = array();

foreach($data as $val){

    $key = $val['id'].'_'.$val['title'];
    
    if(!isset($result[$key])){
    
        $result[$key] = $val;
        
    }else{
    
        $result[$key]['count'] += $val['count'];
        
    }
    
}

$result = array_values($result);

结果如下:

//by www.qzphp.cn
{
    "code": 200,
    
    "data": [
    
        {
            "title": "客房服务",
            "id": 4,
            "count": 2
        },
        
        {
            "title": "设备报修",
            "id": 5,
            "count": 1
        }
        
    ],
    "msg": "查询成功"
}
如果你认为本文可读性较差,内容错误,或者文章排版错乱,请点击举报文章按钮,我们会立即处理!