素材牛VIP会员
php二维数组去除重复,重复值相加
 何***孽  分类:ThinkPHP  人气:1418  回帖:2  发布于6年前 收藏
$arr = array(
    array('id' => 123, 'name' => '张三', 'amount'=>'1'),
    array('id' => 123, 'name' => '李四', 'amount' => '1'),
    array('id' => 124, 'name' => '王五', 'amount' => '1'),
    array('id' => 125, 'name' => '赵六', 'amount' => '1'),
    array('id' => 126, 'name' => '赵六', 'amount' => '2'),
    array('id' => 126, 'name' => '赵六', 'amount' => '2')
);

如果数组内的name相等,最终保留一个,但是amount的值相加。
请问这样如何处理?

 标签:数组thinkphpphp

讨论这个帖子(2)垃圾回帖将一律封号处理……

Lv4 码徒
Su***er JS工程师 6年前#1

对数组进行一次遍历就可以了。

$arr = array(
    array('id' => 123, 'name' => '张三', 'amount'=>'1'),
    array('id' => 123, 'name' => '李四', 'amount' => '1'),
    array('id' => 124, 'name' => '王五', 'amount' => '1'),
    array('id' => 125, 'name' => '赵六', 'amount' => '1'),
    array('id' => 126, 'name' => '赵六', 'amount' => '2'),
    array('id' => 126, 'name' => '赵六', 'amount' => '2')
);

$new = array();

foreach($arr as $row){
    if(isset($new[$row['name']])){
        $new[$row['name']]['amount'] += $row['amount'];
    }else{
        $new[$row['name']] = $row;
    }
}

print_r($new);
Lv6 码匠
骨***活 产品经理 6年前#2

使用迭代器即可,非常方便

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取