php 二维数组去重合并的问题

查看:164
本文介绍了php 二维数组去重合并的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

有如下数组,希望以为其中一维数组相同字段合并,并且total字段相加。例子如下

array(4) {
  [0]=>
  array(2) {
    ["total"]=>
    string(1) "1"
    ["name"]=>
    string(4) "张三"
  }
  [1]=>
  array(2) {
    ["total"]=>
    string(1) "1"
    ["name"]=>
    string(4) "张三"
  }
  [2]=>
  array(2) {
    ["total"]=>
    string(1) "3"
    ["name"]=>
    string(4) "张三"
  }
  [3]=>
  array(2) {
    ["total"]=>
    string(1) "1"
    ["name"]=>
    string(6) "李四"
  }
}

期望去重合并后得到新数组:

array(2) {
  [0]=>
  array(2) {
    ["total"]=>
    string(1) "5"
    ["name"]=>
    string(4) "张三"
  }
  [1]=>
  array(2) {
    ["total"]=>
    string(1) "1"
    ["name"]=>
    string(6) "李四"
  }
}

有谁有好的算法么

解决方案

$arr = array(

    array(
        'id'=>'1',
        'name' => '张三'
        ),
    array(
        'id'=>'2',
        'name' => '张三'
        ),
    array(
        'id'=>'1',
        'name' => '李四'
        )
);

$item = array();

foreach($arr as $k=>$v){

if(!isset($item[$v['name']])){
    $item[$v['name']]=$v;
}else{
    $item[$v['name']]['id']+=$v['id'];
}

}
echo '<pre>';
print_r(array_values($item));

这篇关于php 二维数组去重合并的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆